PHP는 substr()에 의해 가로채어진 한자가 왜곡되는 문제를 해결합니다.

高洛峰
풀어 주다: 2023-03-04 14:40:01
원래의
1513명이 탐색했습니다.

PHP에서 substr()을 사용하여 모두 영어로 된 문자열을 가로채고 싶다면 문제가 되지 않습니다. 여기에 중국어나 영어가 포함되어 있으면 비극이 되겠지만 걱정하지 마세요. 다른 방법을 사용하여 해결할 수 있습니다.

PHP는 잘못된 문자로 중국어 문자열을 가로챕니다. 이것은 제가 이전에 메타 정보 자동 생성에 대한 기사를 작성한 적이 있습니다. 기사를 설명 방법으로 사용했지만 IE6에서는 CSS를 로드할 수 없습니다. 다음은 보충 내용입니다.

먼저 IE6에서 CSS를 로드하지 못하는 이유는 파일이 왜곡되어 CSS를 로드하는 후속 링크가 IE6에서 올바르게 구문 분석되지 않기 때문입니다. . 그래서 저는 CSS가 없는 순수한 HTML 페이지를 보았습니다. 문제를 명확히 하고 나면 남은 문제는 쉽게 해결할 수 있는데, 이는 문자 깨짐을 방지하는 것입니다. Wange에서 제공하는 함수에 문자 깨짐이 있으므로 이 깨짐 코드 문제를 해결하기 위한 새로운 PHP 함수를 찾았습니다.

substr() 함수는 텍스트를 분할할 수 있지만 분할할 텍스트에 중국어 문자가 포함되어 있으면 종종 문제가 발생합니다.

mb_substr() 함수의 사용법은 문자열 인코딩을 설정하기 위해 끝에 매개변수가 하나 더 추가된다는 점을 제외하면 substr()과 유사합니다.

제가 Wange의 방식을 개선한 이유를 아셔야 합니다~~

좀 더 발전된 처리 방법을 소개합니다

예시 1

코드는 다음과 같습니다

function func_chgtitle($str,$len) { //$length我们允许字符串显示的最大长度 
 $tmpstr = "";
 $strlen = $len;
 for($i = 0; $i < $strlen; $i++) {
 if(ord(substr($str, $i, 1)) > 0xa0) {
 $tmpstr .= substr($str, $i, 2);
 $i++;
 } else
 $tmpstr .= substr($str, $i, 1);
 }
 return $tmpstr;
}
로그인 후 복사

예제 2

문자열은 UTF-8로 인코딩되었으며 한자 하나가 3바이트를 차지합니다. :

public static function Chinesesubstr($str, $start, $len) { // $str은 문자열, $start는 문자열의 시작 위치, $len은 문자열의 길이를 나타냅니다.

$strlen = $start + $len; // $strlen을 사용하여 문자열의 전체 길이, 즉 문자열의 시작 위치부터 문자열의 전체 길이를 저장합니다.

코드는 다음과 같습니다

for($i = $start; $i < $strlen;) {
 if (ord ( substr ( $str, $i, 1 ) ) > 0xa0) { // 如果字符串中首个字节的ASCII序数
值大于0xa0,则表示汉字
 $tmpstr .= substr ( $str, $i, 3 ); // 每次取出三位字符赋给变量$tmpstr,即等
于一个汉字
 $i=$i+3; // 变量自加3
 } else{
 $tmpstr .= substr ( $str, $i, 1 ); // 如果不是汉字,则每次取出一位字符赋给
变量$tmpstr
 $i++;
 }
 }
 return $tmpstr; // 返回字符串
 }
로그인 후 복사

이 기사가 PHP 프로그래밍과 관련된 동일한 문제를 해결하는 모든 사람에게 도움이 되기를 바랍니다!

substr()에 의해 가로채는 중국어 문자 문제 해결에 대한 더 많은 PHP 관련 기사를 보려면 PHP 중국어 웹사이트에 주목하세요!

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