0

私はこのようなものが必要です

$keywords = array('google', 'yahoo', 'facebook');

$mystring = 'alice was going to the yahoo CEO and couldn't him her';

$pos = strpos($mystring, $keywords);

if ($pos === false) {
    echo "The string '$keywords' was not found in the string '$mystring'";
} 

基本的に、文字列に存在する場合は、文字列内のいくつかの用語を検索する必要があります。

キーワード /search を大文字と小文字を区別しないように設定できるかどうか疑問に思っています

4

1 に答える 1

1

キーワードを反復処理し、少なくとも 1 つ見つかったら停止します。

$found = false;

foreach ($keywords as $keyword) {
    if (stripos($mystring, $keyword) !== false) {
        $found = true;
        break;
    }
}

if (!$found) {
    echo sprintf("The keywords '%s' were not found in string '%s'\n",
        join(',', $keywords),
        $mystring
    );
}

または、交互に正規表現を使用します。

$re = '/' . join('|', array_map(function($item) {
    return preg_quote($item, '/');
}, $keywords)) . '/i';

if (!preg_match($re, $mystring)) {
        echo "Not found\n";
}
于 2013-04-02T03:45:16.140 に答える