Maison  >  Article  >  développement back-end  >  Comment filtrer les caractères invisibles en php

Comment filtrer les caractères invisibles en php

藏色散人
藏色散人original
2020-07-30 09:56:433404parcourir

Comment filtrer les caractères invisibles en PHP : créez d'abord un exemple de fichier de code PHP ; puis définissez une méthode "filterNonPrintableChar" ; puis implémentez la logique de filtrage via isset, ord et d'autres fonctions ; " Peut.

Comment filtrer les caractères invisibles en php

Recommandé : "Tutoriel vidéo PHP"

php filtrer les caractères invisibles

Connaissances en codage

Les codes ASCII sont réservés aux symboles standard, aux chiffres, à l'anglais, etc. La plage de valeurs est de 0 à 127, et certains sont des 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 = &#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));

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn