関数strpos()
は、文字列内の部分文字列を探し、見つかった場合は部分文字列の位置を返します。それがあなたの最後の例が働く理由です。
あなたは何かが配列内に存在するかどうかを確認したい場合は、そのように、in_array()
機能を使用する必要があります。
$reactfulPages = array(
'url-one',
'url-two',
'url-three',
);
if (in_array($url, $reactfulPages) == true) {
echo "URL is inside list";
}
をしかし、あなたはURLのを比較していることから、私はあなたがチェックしたいと仮定していますURLに配列からの文字列のいずれかが含まれているかどうか、必ずしも一致させる必要はありません。あなたは、あなたの例には、この機能を適用することができます
function contains_any($string, $substrings) {
foreach ($substrings as $match) {
if (strpos($string, $match) >= 0) {
// A match has been found, return true
return true;
}
}
// No match has been found, return false
return false;
}
::このことができます
$reactfulPages = array(
'url-one',
'url-two',
'url-three',
);
if (contains_any($url, $reactfulPages)) {
echo "URL is inside list";
}
希望 この場合、あなたはこのようになり、独自の機能を、記述する必要があります。
...何ですか?コードは動作していますが、それは何かを想定していませんか? – Epodax
@James reactfulPagesは配列なので、 "strpos($ url、$ reactfulPages)"は使用できません。str pos配列ではなく文字列内の単語または文字を検索するために使用します。 urlが配列内に存在することを発見するには、in_array($ value、$ array)メソッドを使用できます。 –