首頁  >  文章  >  後端開發  >  php如何過濾不可見字符

php如何過濾不可見字符

藏色散人
藏色散人原創
2020-07-30 09:56:433463瀏覽

php過濾不可見字元的方法:先建立一個PHP程式碼範例檔案;然後定義一個「filterNonPrintableChar」方法;接著透過isset、ord等函數實作過濾邏輯;最後透過「var_dump」輸出過濾結果即可。

php如何過濾不可見字符

推薦:《PHP影片教學

php過濾不可見字元

編碼知識

ASCII碼為標準符號、數字、英文等進行了保留,取值範圍是0~127,還有一部分作為擴展ASCII碼128~255。當作業系統採用非ASCII編碼時(例如漢字編碼),一般用擴展ASCII碼來進行,約定用128~255範圍的編碼連續2~3甚至4個位元組來進行漢字編碼。

所以可以判斷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