PHP에서 콘텐츠 일부를 바꾸는 방법: 1. PHP 샘플 파일을 만듭니다. 2. "mb_strlen($username,'utf-8');"을 통해 문자열 길이를 계산합니다. 4. 문자열의 마지막 부분을 가로채거나 문자열의 처음 두 부분을 제거합니다. 5. "str_replace_once"를 통해 문자를 바꿉니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 8.1, Dell G3 컴퓨터.
PHP에서 콘텐츠의 일부를 바꾸는 방법은 무엇입니까?
php 중국어 문자열 중간 부분 문자 교체 작업
1. 단계: 1. 길이를 계산합니다
2. 길이에 따라 문자열의 첫 번째 부분을 가로채세요
3. 문자열의 가운데 부분을 가로채세요. 4. 문자 문자열의 마지막 부분을 가로채거나 문자열의 처음 두 부분을 제거합니다.
5. 문자열의 중간 부분을 별표로 바꿉니다.
6. 문자열 연결
2. 코드 작성:
/** * 中文字符串中间部分替换(最多替换二分之一) * @param string $username 中文字符串 * @return string 处理后的字符串 */ function ceshi($username){ // 计算字符串长度,无论汉字还是英文字符全部为1 $length = mb_strlen($username,'utf-8'); // 截取第一部分代码 $firstStr1 = mb_substr($username,0,ceil($length/4),'utf-8'); // 截取中间部分代码 $firstStr = mb_substr($username,ceil($length/4),floor($length/2),'utf-8'); // (方法一)截取剩余字符串 $firstStr2 = mb_substr($username,ceil($length/4) + floor($length/2), floor(($length+1)/2 - 1),'utf-8'); // (方法二)是直接去掉前两部分字符串 // $firstStr2 = ""; // if($firstStr && $username){ // $firstStr2 = str_replace_once($username,$firstStr1,""); // $firstStr2 = str_replace_once($firstStr2,$firstStr,""); // } return $firstStr1 . str_repeat("*",mb_strlen($firstStr,'utf-8')) . $firstStr2; } /** * 替换字符串中的某些字符,仅替换一次,且替换内容必须在原始字符串内 * @param string $username 字符串 * @param string $find 替换内容 * @param string $replace 目标内容 * @param string 处理后的额字符串 */ function str_replace_once($username,$find,$replace) { // 查询出字符串第一次出现的位置 $pos = mb_strpos($username,$find); // 替换目标内的信息 return substr_replace($username, $replace, $pos, strlen($find)); }
3 . 함수 분석
1.mb_strlen()
함수: 문자열의 길이를 반환합니다. 장점: 해당 문자 수를 반환하도록 문자 인코딩을 설정할 수 있어 중국어 문자열의 길이 문제를 잘 해결할 수 있습니다.
구문: strlen(string $str, string $encoding)
str: 문자열 내용
encoding: 인코딩 형식 예: gbk/utf8/gb2312/leave 공백 다양한 인코딩 형식은 중국어의 경우 길이가 다르며 기본값은 utf8
코드 예시:
$str='33三三three'; echo strlen($str).'<br>'; //13 数字+中文+英文=2+6+5 echo mb_strlen($str,'utf8').'<br>';//9 // 数字+中文+英文=2+2+5 echo mb_strlen($str,'gbk').'<br>';//10 数字+中文+英文=2+3+5 echo mb_strlen($str,'gb2312').'<br>';//11 数字+中文+英文=2+4+5
2, mb_substr()
함수: 문자열의 일부를 반환, 장점: 한자 분할에 적합
구문: mb_substr ( string $str , int $start , int $length , string $encoding)
str: 문자열 내용
start: 시작 위치 양수 - 문자열의 지정된 위치에서 시작합니다. 음수 - 문자열의 끝에서 지정된 위치에서 시작합니다. 문자열 문자로 시작
length: length 양수 - 시작 매개변수의 위치에서 반환됨 음수 - 문자열 끝에서 반환됨
encoding: 인코딩 예: gbk/utf8/gb2312/공백으로 두기 다양한 인코딩 형식은 다음과 같습니다. 중국어 길이에 따라 다릅니다. 일반적으로 mb_strlen
과 함께 utf8을 사용합니다. 참고: 1) 시작 매개변수가 음수이고 길이가 시작보다 작거나 같으면 길이는 0
2입니다. 사용할 수 있습니다
코드 예시
$str='33三三three'; echo mb_substr($str,0,3,'utf8').'<br>'; // 33三三
3.str_repeat()
기능: 문자열을 지정된 횟수만큼 반복합니다
Syntax: str_repeat(string $str,int $repeat)
str: String
repeat: 반복 횟수
코드 예
$str='33三三'; echo str_repeat($str,10).'<br>'; // 33三三33三三33三三33三三33三三33三三33三三33三三33三三33三三
4 , mb_stropos()
함수: 다른 문자열에서 문자열의 첫 번째 항목 찾기(대소문자 구분 안 함)
구문: mb_stropos(string $str,string $find,int $ start,string $encoding )
str: 원본 문자열
find: 쿼리 내용
start: 검색 시작 위치, 기본값은 0
encoding: 인코딩 형식 기본 utf8 일반적으로 utf8 사용
코드 예
$str='33三二一'; echo mb_strpos($str,"一",0).'<br>'; // 4 echo mb_strpos($str,"一",0,'utf8').'<br>';// 4 echo mb_strpos($str,"一",0,'gbk').'<br>';// 5
5, substr_replace()
함수: 문자열의 일부를 다른 문자열로 바꾸기
구문: substr_replace(string $str, string $replacement, int $start, int $length)
str: 문자열 정보
replacement: 필요 교체된 문자열
start: 시작 위치
length: 길이
코드 예시
echo substr_replace("天气晚来秋","沉",3,3); // 天沉晚来秋
참고: 한자를 바꿀 때 한자의 3바이트에 주의해야 합니다.
추천 학습: "
PHP 비디오 튜토리얼위 내용은 PHP에서 내용의 일부를 바꾸는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!