1

私の場合は次のようになります。

<?php
$var1 = "Top of British";
$var2 = "Welcome to British, the TOP country in the world";

$var1 = strtolower($var1);
$var2 = strtolower($var2);

if (strpos($var1, $var2) !== FALSE) {
echo "TRUE";
}
?>

動作していません。両方の文字列に TOP または British が存在することを検出するにはどうすればよいですか?

4

4 に答える 4

2

文字列から句読点を削除し、両方を小文字に変換し、スペース文字の各文字列を文字列の配列に分解してから、一致する単語を探してそれぞれをループします。

$var1 = preg_replace('/[.,]/', '', "Top of British");
$var2 = preg_replace('/[.,]/', '', "Welcome to British, the TOP country in the world");


$words1 = explode(" ",strtolower($var1));
$words2 = explode(" ",strtolower($var2));

foreach ($words1 as $word1) {
    foreach ($words2 as $word2) {
       if ($word1 == $word2) {
          echo $word1."\n";
          break;
       }
    }
}

デモ: http://codepad.org/YtDlcQRA

于 2012-08-23T04:41:24.617 に答える
0

フレーズ内の単語の交差をチェックするための一般的な例...「of」や「to」などの廃止されたストップワードの結果をチェックできます

<?php
$var1 = "Top of British";
$var2 = "Welcome to British, the TOP country in the world";

$words1 = explode(' ', strtolower($var1));
$words2 = explode(' ', strtolower($var2));

$iWords = array_intersect($words1, $words2);

if(in_array('british', $iWords ) && in_array('top', $iWords))
  echo "true";
于 2012-08-23T04:44:05.467 に答える
0

PHP には、2 つの配列のメンバーである要素を検索する関数があります。

$var1 = explode(" ", strtolower("Top of British"));
$var2 = explode(" ", strtolower("Welcome to British, the TOP country in the world"));
var_dump(array_intersect($var1, $var2)); // array(1) { [0]=> string(3) "top" }
于 2012-08-23T04:45:00.030 に答える
0

文字列内の TOP または BRITISH を検索するには

<?php
$var1 = "Top of British";
$var2 = "Welcome to British, the TOP country in the world";

$var1 = strtolower($var1);
$var2 = strtolower($var2);

if (strpos($var1, 'top') && strpos($var1, 'british')) {
echo "Either the word TOP or the word BRITISH was found in string 1";
}
?>

より一般的に文字列 2 の単語を文字列 1 の単語と一致させます

<?php
$var1 = explode(' ', strtolower("Top of British"));
$var2 = "Welcome to British, the TOP country in the world";

$var2 = strtolower($var2);

foreach($var1 as $needle) if (strpos($var2, $needle)) echo "At least one word in str1 was found in str 2";

?>
于 2012-08-23T04:42:46.407 に答える