私は単語の文字列を検索したいのですが、この単語が見つからない場合は、別の単語を検索して、文字列を検索するためのコードを表示しますが、検索は続行しません。検索キーワードが見つからない場合は、他の単語を検索してください。
乾杯 アシュリー
P.sのPHPコード私は
は、あなたの助けの人たちのために非常に多くの
をいただき、ありがとうございます必要なものである私は、チップの将来のおかげで私のWIPコードを掲載します。
私は単語の文字列を検索したいのですが、この単語が見つからない場合は、別の単語を検索して、文字列を検索するためのコードを表示しますが、検索は続行しません。検索キーワードが見つからない場合は、他の単語を検索してください。
乾杯 アシュリー
P.sのPHPコード私は
は、あなたの助けの人たちのために非常に多くの
をいただき、ありがとうございます必要なものである私は、チップの将来のおかげで私のWIPコードを掲載します。
検索する配列にすべての値を配置すると、その配列内をループして文字列内の配列を見つけることができます。
$string = "I love to eat tacos.";
$searchfor = array("brown", "lazy", "tacos");
foreach($searchfor as $v) {
if(strpos($string, $v)) {
//Found a word
echo 'Found '.$v;
break;
}
}
これは、希望出力:これは、大文字と小文字が区別されstrpos
使用さ
Found tacos
。大文字と小文字を区別しない場合は、stripos
を使用できます。
'strstr'の代わりに' strpos'を使用してください。リンク先のマニュアルページの注記を参照してください:) – mfonda
@mfondaありがとう、私は本当に 'strpos'を意味していたと思います。私は正しいアイデアを反映するために私の答えを更新しました。 –
これは非常に簡単です:
$string = "This is the string I want to search in for a third word";
$words = array('first', 'second', 'third');
$found = '';
foreach ($words as $word) {
if (stripos($string, $words) !== false) {
$found = $word;
break;
}
}
echo "This first match found was '$found'";
注:彼らは唯一の整数位置を返しますので、(大文字と小文字を区別しない検索のためかstripos
)strpos
を使用してください。 strstr
のようなものは、この目的のために必要でない文字列の一部を返します。
編集:
それとも、あなたは、単一の正規表現を行うことができますループなし:
$words = array('first', 'second', 'third');
$regex = '/(' . implode('|', $words) . ')/i';
//$regex becomes '/(first|second|third)/i'
if (preg_match($regex, $string, $match)) {
echo "The first match found was {$match[0]}";
}
ような何か:
$haystack = 'PHP is popular and powerful';
$needles = array('Java','Perl','PHP');
$found = '';
foreach($needles as $needle) {
if(strpos($haystack,$needle) !== false) {
$found = $needle;
break;
}
}
if($found !== '') {
echo "Needle $found found in $haystack\n";
} else {
echo "No needles found\n";
}
上記のコードは、サブ文字列の一致を検討します有効な一致として例えば、針が'HP'
の場合、それはPHP
の部分文字列であることがわかります。完全な単語が一致してあなたのようにpreg_match
を利用することができるようにするに
:
foreach($needles as &$needle) {
$needle = preg_quote($needle);
}
$pattern = '!\b('.implode('|',$needles).')\b!';
if(preg_match($pattern,$haystack,$m)) {
echo "Needle $m[1] found\n";
} else {
echo "No needles found\n";
}
あなたは
<?php
function first_found(array $patterns, $string) {
foreach ($patterns as $pattern) {
if (preg_match($pattern, $string, $matches)) {
return $matches;
}
}
}
$founded = first_found(
array(
'/foo/',
'/bar/',
'/baz/',
'/qux/'
),
' yep, it qux.'
);
を意味するかそれはあなたのためにこれをコーディングするために誰かの素敵でした。通常は、少なくとも自分でコードを作成して、それを理解するのに役立たないコードを提供することをお勧めします。 –