PHP 함수 "str_split"을 직접 사용하여 분할하면 한자의 길이와 영문자의 길이가 다르기 때문에 문자가 깨질 수 있지만, 먼저 문자를 ASCII 값으로 변환하는 새로운 함수를 만들 수 있습니다. 다양한 문자 길이를 판단하여 중국어 문자열을 올바르게 분할하고 결과를 배열에 저장한 후 마지막으로 PHP 함수 "join"을 사용하여 문자 사이에 퍼센트 기호를 삽입합니다.
방법 1, 예제 코드는 다음과 같습니다. :
function str_split_utf8($str){
$split=1
$array=array(); >
for($ i=0;$iif($value>=192&&$value<=223) $split=2; elseif($value>=224 && $value<=239) $split =3; elseif($value>=240 && $value<=247) $split=4; $split=1; >
}
$key=null;
for($j=0;$j<$split;$j++,$i++){
$key .=$str[$i ];
}
array_push($array,$key)
return $array; >
} $string="php 팬 네트워크 www.phpfensi.com"; $arr1=str_split_utf8($string); echo Join(" %",$arr1); ?> 방법 2, 예시 코드는 다음과 같습니다. $str ="php 팬 네트워크: http://www.phpfensi.com"; function mbstringtoarray($str,$charset) { $strlen=mb_strlen($str); >while($strlen){
$array[]=mb_substr($str,0,1,$charset)
$str=mb_substr($str,1, $strlen,$charset);
$strlen=mb_strlen($str);
}
return $array; 🎜>$arr=mbstringtoarray($str, "gb2312");
참고:
1. 예: "gb2312" 또는 "utf-8"
2. 방법 1에서는 서버가 mbstring.dll 확장자를 활성화해야 합니다. 그렇지 않으면 코드 실행 오류가 발생하므로 가상 호스트를 사용하는 친구의 경우 다음 방법을 사용하는 것이 좋습니다.
방법 3, 예제 코드는 다음과 같습니다.
function str_to_arr($str){
$l=strlen($str);
for($ i=0;$i<$l;$i++){
$arr[]=ord($str [$i])>127?$str[$i].$str[++ $i]:$str[$i]
}
return $arr
}
$arr=str_to_arr($str)
?>