<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// この部分は、記事の内容とは何の関係もありません,それはプログラムまたは何か他のものの初期化になる可能性があります</span></span><span>
</span><span><span class="hljs-comment">// たとえば、タイムゾーンの設定</span></span><span>
</span><span><span class="hljs-title function_ invoke__">date_default_timezone_set</span></span><span>(</span><span><span class="hljs-string">'Asia/Shanghai'</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
<span class="hljs-comment">/**
* stristr2番目のパラメータータイプの関数を使用する方法?
* 文字列と配列の違いの詳細な説明
*
* 存在するPHP真ん中,stristr函数用于存在する字符串真ん中查找某个子串,サブストリングの最初の発生から文字列の最後まで部分を返します。
* その基本的な使用法です:
* string stristr(string $haystack, string $needle, bool $before_needle = false)
* 其真ん中:
* - $haystack 文字列は検索されています
* - $needle 見つける文字列です
* - $before_needle オプション,もしtrue,その後、返しますneedle前の部分
*
* しかし,1つ部の開発者は混乱します:stristr2番目のパラメーターを配列に渡すことはできますか?または、配列を渡すことと文字列を渡すことの違いは何ですか?
*
* 1つ、stristr2番目のパラメータータイプの制限
* stristr関数の2番目のパラメーターは文字列タイプでなければなりません,配列を渡すことはできません。配列を渡す場合,PHPエラーが報告されます:
* Warning: stristr() expects parameter 2 to be string, array given
*
* したがって,厳密に言えば,stristr文字列のみが2番目のパラメーターとして受け入れられます。
*
* 二、配列を渡すことの誤解があるのはなぜですか?
* いくつかのシナリオで,开发者想用多个关键词去搜索字符串是否包含其真ん中任意1つ个,もしstristr只能1つ次查1つ个字符串。
* 現時点では,一般的な練習は、配列を使用して複数のキーワードを保存することです,然后遍历数组逐1つ调用stristr試合をする。
*
* 三つ、マルチキーワードマッチングを実現する方法(配列効果をシミュレートします)
* サンプルコードは次のとおりです:
*/</span>
</span><span><span class="hljs-variable">$keywords</span></span><span> = [</span><span><span class="hljs-string">'apple'</span></span><span>, </span><span><span class="hljs-string">'banana'</span></span><span>, </span><span><span class="hljs-string">'orange'</span></span><span>];
</span><span><span class="hljs-variable">$text</span></span><span> = </span><span><span class="hljs-string">"I like banana and orange juice."</span></span><span>;
</span><span><span class="hljs-variable">$found</span></span><span> = </span><span><span class="hljs-literal">false</span></span><span>;
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$keywords</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$word</span></span><span>) {
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">stristr</span></span><span>(</span><span><span class="hljs-variable">$text</span></span><span>, </span><span><span class="hljs-variable">$word</span></span><span>) !== </span><span><span class="hljs-literal">false</span></span><span>) {
</span><span><span class="hljs-variable">$found</span></span><span> = </span><span><span class="hljs-variable">$word</span></span><span>;
</span><span><span class="hljs-keyword">break</span></span><span>;
}
}
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$found</span></span><span> !== </span><span><span class="hljs-literal">false</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"キーワードを見つけます:<span class="hljs-subst">$found</span></span></span><span>\n";
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"没有キーワードを見つけます。\n"</span></span><span>;
}
<span class="hljs-comment">/**
* 4、要約します
* - stristr2番目のパラメーターは文字列でなければなりません,アレイを直接渡すことはできません。
* - 複数のキーワードマッチングが必要な場合,自分で配列をループできます,1つずつ電話してくださいstristr判断。
* - 这样可以灵活地判断字符串是否包含任1つ多个关键词。
*
* 五、その他の関連関数
* - stripos: 無感覚にある場合に備えて、文字列の場所を見つけます,2番目のパラメーターも文字列です。
* - preg_match: マルチキーワードマッチングは、正規表現でも実現できます,たとえば、使用しますpattern /(apple|banana|orange)/i。
*
* 上記はですstristr関数の2番目のパラメーターのタイプ使用と文字列と配列の違いの詳細な説明と例。
*/</span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>