ホームページ  >  記事  >  バックエンド開発  >  PHPで非表示の文字をフィルタリングする方法

PHPで非表示の文字をフィルタリングする方法

藏色散人
藏色散人オリジナル
2020-07-30 09:56:433404ブラウズ

php メソッドで非表示の文字をフィルタリングします。最初に PHP コード サンプル ファイルを作成し、次に「filterNonPrintableChar」メソッドを定義します。次に、isset、ord、およびその他の関数を使用してフィルタリング ロジックを実装し、最後に「var_dump」を使用してフィルタリング結果を出力します。できる。

PHPで非表示の文字をフィルタリングする方法

# 推奨: 「

PHP ビデオ チュートリアル

#php 非表示文字のフィルター

#コーディングに関する知識

ASCII コードは、標準記号、数字、英語などのために予約されています。値の範囲は 0 ~ 127 で、一部は拡張 ASCII コード 128 ~ 255 です。オペレーティング システムが非 ASCII エンコード (中国語文字エンコードなど) を使用する場合、通常は拡張 ASCII コードが使用され、中国語文字をエンコードするには、連続する 2 ~ 3 バイト、場合によっては 4 バイトに対して 128 ~ 255 のコード範囲を使用することが合意されています。

つまり、ASCII コードの 10 進数値が 127 より大きいかどうかを判断して、中国語の文字を除外できます。

phpコード

<?php
/**
 * @param $str
 * @return string
 * 过滤不可见字符,支持中文过滤
 * 0至31和127这33个编码是不可见的特殊字符(控制符)
 */
function filterNonPrintableChar($str)
{
    $i = 0;
    $newStr = &#39;&#39;;
    while (isset($str[$i])) {
        $char = $str[$i];
        $asc = ord($char);
        if ($asc > 31 && $asc < 127 || $asc > 127) {
            $newStr .= $char;
        }
        $i++;
    }
    return $newStr;
}
$str = chr(1) ."a3#2%1". chr(2) . chr(54) . "s哈哈ad~a好的s";
var_dump(filterNonPrintableChar($str));
$str = "“ASCII码为标准符号、数字、英文等进行了保留,取值范围是0~127,还有一部分作为扩展ASCII码128~255当操作系统采用非ASCII编码时(比如汉字编码),一般用扩展ASCII码来进行,约定用128~255范围的编码连续2~3甚至4个来进行...”";
var_dump(filterNonPrintableChar($str));

以上がPHPで非表示の文字をフィルタリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。