PHP에서 잘못된 문자 없이 문자열을 뒤집는 방법: 1. PHP 샘플 파일을 만들고 인코딩을 utf8로 설정합니다. 2. mb_strlen 함수를 사용하여 utf8 문자열의 길이를 가져옵니다. 3. 문자열을 배열로 나눕니다. 4. , 배열 키 이름의 크기를 반대로 바꿉니다. 5. 배열의 단일 문자 요소를 문자열로 다시 결합합니다.
이 기사의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터
PHP에서 잘못된 문자 없이 문자열을 바꾸는 방법
PHP에서 중국어 문자열을 바꾸는 방법은 무엇입니까? 왜곡된 문자:
블로거는 오늘 온라인에서 PHP 인터뷰 질문을 읽다가 문자열을 뒤집는 방법에 대한 질문을 보았습니다. 당시 그는 이를 달성할 수 있는 내장 함수 strrev가 있지 않을까 생각했습니다. 기능? 나중에 시도해 보니 이 기능은 영어 문자만 반전할 수 있고 한자에서 문자가 깨질 수 있다는 것을 발견했습니다. 주된 이유는 여전히 코딩 문제입니다.
PHP에서는 utf-8로 인코딩된 중국어는 3바이트로 계산되고, gb2312는 2바이트로 계산됩니다. 따라서 중국어 문자열의 일부 기능을 구현하려면 먼저 인코딩 문제를 해결해야 합니다.
오늘 이 기능은 코딩부터 시작됩니다. 다음으로 구현된 함수에 대해 이야기하겠습니다. 오늘은 다음 함수를 사용합니다.
is_string()//判断参数是否为字符串,这个大家应该都知道 mb_check_encoding()//用来检查给定的字符串是否属于指定的编码 mb_strlen()//用来获取字符串长度 mb_substr()//用来截取字符串中的字符 krsort()//将数组按键名由大到小排序上述
위에서는 mb로 시작하는 3개의 함수를 사용합니다. mb로 시작하는 함수는 주로 문자열 인코딩을 지정하는 데 사용됩니다.
mb_check_encoding()은 두 개의 매개변수를 허용합니다. 두 번째 매개변수는 문자 인코딩을 입력한 다음 해당 문자열이 인코딩에 속하는지 확인하고 두 번째 매개변수가 생략되면 부울 값을 반환합니다. then 기본값은 내부 인코딩이며 mb_internal_encoding()을 통해 볼 수 있습니다.
mb_strlen()에는 두 개의 매개변수가 있습니다. 첫 번째는 문자열 내용이고 두 번째는 문자열 인코딩입니다.
mb_substr()에는 4개의 매개변수가 있습니다. 첫 번째는 차단할 문자열의 내용이고, 두 번째는 차단의 시작 위치이고, 세 번째는 차단 길이이며, 네 번째는 문자열의 인코딩입니다(여기서). 예 utf-8을 선택해야 합니다. 다른 인코딩에서는 올바른 결과를 얻을 수 없습니다.
다음은 간단한 주석을 표시한 것입니다. 실제로 한 번만 읽어도 이해할 수 있습니다.
<?php header("Content-type:text/html;charset=utf-8"); $s="这是我的技术博客,欢迎多多来访!"; function str_rev($str){ //先判断参数是否为字符串,且为UTF8编码 if(!is_string($str)||!mb_check_encoding($str,"utf-8")){ die("输入的不是utf8类型的字符串"); } //用mb_strlen函获取算utf8字符串的长度 $length=mb_strlen($str,"utf-8"); //声明一个数组备用 $arr=array(); //将字符串拆开放入数组 for($i=0;$i<$length;$i++){ $arr[$i]=mb_substr($str,$i,1,"utf-8"); } //将数组按键名大小反转 krsort($arr); //将数组中单个字符元素重新组合成字符串 $str=implode("",$arr); //将翻转后的字符串返回 return $str; } echo $s."<br>"; echo str_rev($s); /* 得到结果: * 这是我的技术博客,欢迎多多来访! * !访来多多迎欢,客博术技的我是这 */ ?>
텍스트에 오류가 있으면 지적해 주세요.
추천 학습: "PHP 비디오 튜토리얼"
위 내용은 PHP에서 문자가 깨지지 않고 문자열 뒤집기를 달성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!