> 백엔드 개발 > PHP 튜토리얼 > php过滤掉无法识别的问号字符解决方案

php过滤掉无法识别的问号字符解决方案

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-13 11:48:46
원래의
1716명이 탐색했습니다.

php过滤掉无法识别的问号字符
有一个文件,txt打开后有几处显示问号
salisbury rd ?open ?requested CONTRAC
网页上也显示问号,意思应该是不识别

想把这些不识别的字符过滤掉。
试过了几个方法都不行

$str = file_get_contents('example_text.txt');<br />echo $str;
로그인 후 복사


------解决方案--------------------
试试用这个方法过滤下。

<br />function filter_utf8_char($ostr){<br />    preg_match_all('/[\x{FF00}-\x{FFEF}<br><font color='#FF8000'>------解决方案--------------------</font><br>\x{0000}-\x{00ff}<br><font color='#FF8000'>------解决方案--------------------</font><br>\x{4e00}-\x{9fff}]+/u', $ostr, $matches);<br />    $str = join('', $matches[0]);<br />    if($str==''){   //含有特殊字符需要逐個處理<br />        $returnstr = '';<br />        $i = 0;<br />        $str_length = strlen($ostr);<br />        while ($i<=$str_length){<br />            $temp_str = substr($ostr, $i, 1);<br />            $ascnum = Ord($temp_str);<br />            if ($ascnum>=224){<br />                $returnstr = $returnstr.substr($ostr, $i, 3);<br />                $i = $i + 3;<br />            }elseif ($ascnum>=192){<br />                $returnstr = $returnstr.substr($ostr, $i, 2);<br />                $i = $i + 2;<br />            }elseif ($ascnum>=65 && $ascnum<=90){<br />                $returnstr = $returnstr.substr($ostr, $i, 1);<br />                $i = $i + 1;<br />            }elseif ($ascnum>=128 && $ascnum<=191){ // 特殊字符<br />                $i = $i + 1;<br />            }else{<br />                $returnstr = $returnstr.substr($ostr, $i, 1);<br />                $i = $i + 1;<br />            }<br />        }<br />        $str = $returnstr;<br />        preg_match_all('/[\x{FF00}-\x{FFEF}<br><font color='#FF8000'>------解决方案--------------------</font><br>\x{0000}-\x{00ff}<br><font color='#FF8000'>------解决方案--------------------</font><br>\x{4e00}-\x{9fff}]+/u', $str, $matches);<br />        $str = join('', $matches[0]);<br />    }<br />    return $str;<br />}<br />
로그인 후 복사

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿