>백엔드 개발 >PHP 문제 >PHP에서 보이지 않는 문자를 필터링하는 방법

PHP에서 보이지 않는 문자를 필터링하는 방법

藏色散人
藏色散人원래의
2020-07-30 09:56:433530검색

PHP에서 보이지 않는 문자를 필터링하는 방법: 먼저 PHP 코드 샘플 파일을 만든 다음 "filterNonPrintableChar" 메서드를 정의한 다음 isset, ord 및 기타 함수를 통해 필터링 논리를 구현합니다.

PHP에서 보이지 않는 문자를 필터링하는 방법

권장: "PHP 비디오 튜토리얼"

php 필터 보이지 않는 문자

코딩 지식

ASCII 코드는 표준 기호, 숫자, 영어 등에 예약되어 있으며 값 범위는 0입니다. ~ 127, 일부는 확장 ASCII 코드 128~255입니다. 운영 체제가 비ASCII 인코딩(예: 중국어 문자 인코딩)을 사용하는 경우 일반적으로 확장 ASCII 코드가 사용됩니다. 한자를 인코딩하기 위해 2~3바이트 또는 심지어 4개의 연속 바이트에 대해 128~255의 코딩 범위를 사용하는 것이 동의됩니다.

따라서 ASCII 코드의 십진수 값이 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.