Comment PHP gère les caractères invisibles : créez d'abord un fichier PHP ; puis définissez une méthode filterNonPrintableChar ; puis implémentez la logique fonctionnelle de filtrage des caractères invisibles via l'instruction while dans le corps de la méthode ;
php filtre les caractères invisibles
Connaissances en codage
Le code ASCII est standard Symboles , les chiffres, l'anglais, etc. sont conservés et la plage de valeurs est de 0 à 127, et certains sont utilisés comme codes ASCII étendus de 128 à 255. Lorsque le système d'exploitation utilise un codage non-ASCII (comme le codage de caractères chinois), le code ASCII étendu est généralement utilisé. Il est convenu d'utiliser une plage de codage de 128 à 255 pour 2 à 3 voire 4 octets consécutifs pour coder les caractères chinois.
Vous pouvez ainsi juger si la valeur décimale du code ASCII est supérieure à 127 pour filtrer les caractères chinois.
code php
<?php /** * @param $str * @return string * 过滤不可见字符,支持中文过滤 * 0至31和127这33个编码是不可见的特殊字符(控制符) */ function filterNonPrintableChar($str) { $i = 0; $newStr = ''; 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));
Recommandé : "Tutoriel PHP"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!