>  기사  >  백엔드 개발  >  PHP는 잘못된 문자 없이 중국어 문자열 차단을 구현합니다.

PHP는 잘못된 문자 없이 중국어 문자열 차단을 구현합니다.

(*-*)浩
(*-*)浩원래의
2019-09-27 09:57:473429검색

PHP는 잘못된 문자 없이 중국어 문자열 차단을 구현합니다.

Substr은 PHP에서 문자열을 가로채는 데 자주 사용되는데, 한자를 가로채는 데 사용하면 코드가 깨지는 문제가 발생합니다 , 예: (권장 학습: PHP 프로그래밍 입문부터 숙련까지 )

<?php
$mystring="今天天气真好";
$mysubstring=substr($mystring,0,2);
echo $mysubstring;
?>

출력 결과는 �;

#🎜🎜 #

입니다. 원인 분석: substr 함수의 프로토타입은 string substr (string $string, int $start [, int $length])입니다. 여기서 $length는 반환된 바이트 길이를 의미하고 한자가 2바이트를 차지합니다. UTF-8 중국어 문자의 경우 3바이트로 처리됩니다.

<?php
$length=strlen($mystring);echo $length;//输出结果为18
?>

즉, $length를 3으로 사용할 수 있으므로 "Jin" 문자가 성공적으로 반환됩니다. 이 경우 중국어와 영어가 섞여 있다면 $length를 신중하게 계산해야 합니다.

그럼 더 좋은 해결책은 없을까요?

Php는 추가 기능 mb_strlen 및 mb_substr을 제공합니다

<?php
$length=mb_strlen($mystring);
$mysub=mb_substr($mystring,0,4);
echo "the length is:$length,","the substr is:$mysub";
?>

출력 결과: 길이: 6, 하위 문자열: today Weather # 🎜🎜#

mb_strlen 함수 프로토타입은 int mb_strlen(string string_input, string encode)입니다. encode의 기본값은 UTF-8이며, UTF-8로 인코딩된 중국어 문자를 하나로 계산합니다.

#🎜 🎜##🎜 🎜#

참고: mb_strlen 및 mb_substr은 PHP의 핵심 기능이 아닙니다. 이를 사용하기 전에 php.ini에서 Extension=php_mbstring.dll을 열어야 합니다

위 내용은 PHP는 잘못된 문자 없이 중국어 문자열 차단을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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