PHPでは、 StripoS関数は、弦のサブストリングの位置を初めて見つけるために使用される関数です。 STRPOS関数とは異なり、 STRPOSはケース非感受性です。これにより、特にケースを無視する必要がある場合、キーワードフィルタリングを実装する場合に非常に便利になります。
この記事では、 StripOS関数を使用して単純なキーワードフィルタリング関数を実装する方法を示します。この方法は、ユーザーの入力、記事のコンテンツ、またはURLに特定の機密の単語またはキーワードが含まれているかどうかを確認するためによく使用されます。
StripOS関数の目的は、文字列内で初めて別のサブストリングが表示される場所を見つけることです。サブストリングが見つかった場合、サブストリングの開始位置を返します(インデックスは0から始まります)。見つからない場合、それはfalseを返します。
stripos(string $haystack, string $needle, int $offset = 0): int|false
Haystack :検索する文字列。
針:見つかるサブストリング。
オフセット:オプションのパラメーター、検索の開始場所を指定します。
ユーザーが入力するものについてキーワードをフィルタリングするとします。 「例」などの特定のテキストに敏感な単語が含まれているかどうかを検出する必要があります。 Striposを使用すると、これを簡単に達成できます。
<?php
// 敏感な単語配列を定義します
$keywords = ['example', 'test', 'php'];
// ユーザー入力テキスト
$user_input = "This is an example of using stripos in PHP.";
// 敏感な単語配列を通過します,ユーザー入力に機密の単語が含まれているかどうかを確認します
foreach ($keywords as $keyword) {
if (stripos($user_input, $keyword) !== false) {
echo "敏感な単語が検出されました:$keyword\n";
}
}
?>
この例では、最初に敏感な単語配列$キーワードを定義します。次に、これらの敏感な単語をforeachでループし、 spriposを使用して、ユーザー入力$ user_inputにこれらの敏感な単語が含まれているかどうかを確認します。 Striposによって返された結果が偽でない場合、それは敏感な単語が見つかったことを意味します。
テキストに特定のURLが含まれているかどうかをフィルタリングする必要があると仮定すると(たとえばhttp://example.com )、 Striposを使用してURLを検出できます。
<?php
// フィルターに対する感度 URL
$sensitive_urls = ['http://example.com', 'https://m66.net'];
// ユーザー入力テキスト
$user_input = "You can visit http://example.com for more information or https://m66.net for updates.";
// トラバーサル感度 URL 配列,テキストに感度が含まれているかどうかを確認してください URL
foreach ($sensitive_urls as $url) {
if (stripos($user_input, $url) !== false) {
echo "感度が検出されました URL:$url\n";
}
}
?>
この例では、敏感なURL配列$ sensitive_urlsを定義し、 StripOSを使用して、これらの敏感なURLがユーザー入力テキストに含まれているかどうかを調べます。見つかった場合、対応するプロンプトは出力されます。
ユーザーが入力したコンテンツに敏感な単語または要件を満たさないURLが含まれる可能性のあるフォームがある場合、ユーザーがフォームを提出する前に、 StripOSを使用して違法なコンテンツをフィルタリングできます。
<?php
// 敏感な単語と感度を定義します URL 配列
$keywords = ['example', 'test', 'spam'];
$sensitive_urls = ['http://example.com', 'https://m66.net'];
// ユーザーが送信したフォームのコンテンツを取得します
$user_input = $_POST['content']; // ユーザーが送信されたフォームデータがで保存されていると仮定します 'content' フィールド
// 敏感な単語が含まれているかどうかを確認してください
foreach ($keywords as $keyword) {
if (stripos($user_input, $keyword) !== false) {
echo "警告:コンテンツの送信には、敏感な単語が含まれています:$keyword\n";
exit; // 敏感な単語が見つかった場合,処理を停止します
}
}
// 感度を確認してください URL
foreach ($sensitive_urls as $url) {
if (stripos($user_input, $url) !== false) {
echo "警告:コンテンツの送信には、感度が含まれています URL:$url\n";
exit; // 敏感な場合 URL,処理を停止します
}
}
// 機密コンテンツがない場合,フォームの処理を続けることができます
echo "フォームは正常に送信されます!";
?>
この例では、ユーザーがサビされたコンテンツを仮説的な形式から取得し、 Triposを使用して、テキストに機密の単語または機密のURLが含まれているかどうかを確認します。機密コンテンツが見つかった場合、スクリプトは停止し、警告メッセージを提供します。