PHPでは、特にソーシャルプラットフォーム、フォーラム、その他のWebサイトで、敏感な単語代替の処理は一般的な要件です。ユーザーの言語が規制に準拠するようにするために、敏感な単語を正確に置き換える必要があります。 StriposとStr_ireplaceは、これを達成するためにうまく機能する2つの一般的に使用されるPHP関数です。
Striposは、サブストリングの最初の発生を見つけるために使用される関数であり、症例感受性です。 str_ireplaceは、文字列を置き換えるために使用できる関数であり、ケースに依存しないことでもあります。 Striposを介して敏感な単語の位置を見つけてから、 str_ireplaceに置き換えることができます。
StripOS関数の関数は、文字列の最初の発生の位置情報を見つけ、文字列内のサブストリングの最初の発生の位置を返すことです。この関数は症例感受性です。
stripos($haystack, $needle, $offset);
$ haystack :見つける文字列。
$針:見つかるサブストリング。
$ offset :オプション、検索を開始する場所を指定します。
$haystack = "Hello world!";
$needle = "world";
$position = stripos($haystack, $needle);
echo $position; // 出力 6
str_ireplaceは、文字列を置き換えるために使用される関数であり、症例に敏感です。
str_ireplace($search, $replace, $subject, &$count);
$検索:検索する文字列。
$の交換:交換に使用される文字列。
$件名:交換するターゲット文字列。
$ count :オプション、交換数を返します。
$subject = "Hello world!";
$search = "world";
$replace = "PHP";
$result = str_ireplace($search, $replace, $subject);
echo $result; // 出力 Hello PHP!
敏感な単語を正確に交換するために、 StriposとStr_ireplaceの機能を組み合わせることができます。 Striposは、敏感な単語の位置を見つけるために使用されます。敏感な単語が存在する場合は、 str_ireplaceに置き換えます。
<?php
// 敏感な単語リストの定義
$sensitiveWords = ['badword', 'offensiveword', 'curseword'];
// 入力された文字列
$text = "This is a test string containing badword and offensiveword.";
// 敏感な単語リストを通過します,1つと交換します
foreach ($sensitiveWords as $word) {
// 使用 stripos 敏感な単語が含まれているかどうかを判断します
if (stripos($text, $word) !== false) {
// 使用 str_ireplace 敏感な単語を置き換えます
$text = str_ireplace($word, '***', $text);
}
}
echo $text; // 出力:This is a test string containing *** and ***.
?>
多くの場合、ユーザーが入力したテキストにはURLが含まれている場合があります。これらのURLに敏感な単語がある場合は、それらを処理する必要があります。 StriposとStr_ireplaceを使用して、URLの敏感な単語を簡単に置き換えます。たとえば、URLに敏感な単語が表示される場合、ユーザーが入力したURLが安全であることを確認するために、ドメイン名をM66.NETに置き換えることができます。