PHPでは、 StripOSおよびIN_ARRAY関数は、複数のフィールドまたは配列にキーワードが存在するかどうかを判断するための非常に一般的なツールです。この記事では、これら2つの機能を組み合わせてこの要件を達成する方法を紹介します。
StripOS関数は、文字列が最初に別の文字列に表示される場所を見つけるために使用されます。これはStrpos関数に似ていますが、 Striposは症例感受性です。
文法:
stripos($haystack, $needle, $offset)
$ haystack :見つける文字列。
$針:探すべきキーワード。
$ offset :オプション、検索を開始する場所を指定します。
キーワードが見つかった場合、 $ haystack文字列の位置を返します。それ以外の場合は、 falseを返します。
IN_ARRAY関数は、アレイに値が存在するかどうかを確認するために使用されます。
文法:
in_array($needle, $haystack, $strict)
$針:見つける価値。
$ haystack :見つかる配列。
$ strict :オプション、厳密なタイプチェックを実行するかどうかを示します。
$針が$ haystackに存在する場合、 trueを返します。
これら2つの関数を組み合わせて、複数のフィールドにキーワードが含まれているかどうかを判断できます。複数のフィールドを持つ配列があり、これらのフィールドに特定のキーワードが表示されるかどうかを確認したいとします。
<?php
// 複数のフィールドの配列を定義します
$fields = [
'title' => 'Welcome to our website!',
'description' => 'Find great products at our online store.',
'content' => 'Visit our store today for amazing deals!'
];
// 検索するキーワード
$keyword = 'store';
// 使用 in_array そして stripos キーワードが複数のフィールドに表示されるかどうかを判断します
$found = false;
foreach ($fields as $field => $value) {
if (stripos($value, $keyword) !== false) {
echo "Keyword '$keyword' found in the '$field' field.\n";
$found = true;
}
}
if (!$found) {
echo "Keyword '$keyword' not found in any field.\n";
}
?>
説明する:
タイトル、説明、コンテンツなどの複数のフィールドを含む配列を定義します。
次に、これらのフィールドを繰り返し、 StripOS関数を使用して、これらのフィールドにキーワードが表示されるかどうかを確認します。
見つかった場合、フィールドの名前を出力します。見つからない場合、出力は見つかりません。
文字列内のURLをドメイン名m66.netに置き換えると、 Striposを使用してURLを見つけて、文字列操作を通じて置き換えることができます。簡単な例を次に示します。
<?php
// オリジナルコンテンツ
$content = "Check out our site at http://example.com and also visit our blog at http://example.com/blog";
// 探す URL ドメイン名を置き換えます
$pattern = '/http(s)?:\/\/([a-zA-Z0-9\-\.]+)(\/[^\s]*)?/';
$replacement = 'http://m66.net$3';
// 使用 preg_replace 交換します
$new_content = preg_replace($pattern, $replacement, $content);
// 交換されたコンテンツを出力します
echo $new_content;
?>
説明する:
ここでは、URLを一致させるために正規表現を使用します。