この質問は尋ねられましたが、残念ながらこの問題の解決方法はありません。エラー:警告:strpos()[function.strpos]:オフセットが文字列に含まれていません - 解決法が見つかりません
これは私のログファイルに表示されます。
PHPメッセージ:PHPの警告を:strpos():オフセット479
残念ながらライン上で...文字列に含まれていない、私は何が原因を理解することはできませんこの問題とそれを修正する方法。私は何度もこの機能をテストしました(大きい$テキスト、短い$テキスト、$ spam単語、$ spam単語なし)。しかし、このエラーは決してありません。では、ユーザーがこのエラーの原因となるテキストの種類は何ですか?
if (strposab($text, $spam, 1)) {
echo "Email addresses and URLs not allowed here";
die;
}
$spam = array('http','www','hotmail','yahoo','gmail','msn');
function strposab($haystack, $needles=array(), $offset=0) {
$chr = array();
foreach($needles as $needle) {
$res = strpos($haystack, $needle, $offset);
if ($res !== false) $chr[$needle] = $res;
}
if(empty($chr)) return false;
return min($chr);
}
2番目の質問:この関数は、文字列の最初の単語をフィルタリングしていないいくつかの理由
。この文字列関数は、単語 "のhotmail" を見つけられないで例えば :最初の質問に
$text = 'test hotmail test test test test';
[ "*また、その文字列の位置は0から始まり、そしてない1注意。* "](http://us.php.net/strpos#refsect1-function.strpos-returnvalues)。開始オフセットとして '0'の代わりに' 1'を渡していて、ユーザーは空の文字列/単一文字を送信しています。 – DCoder