>  기사  >  백엔드 개발  >  PHP에서 내용의 일부를 바꾸는 방법

PHP에서 내용의 일부를 바꾸는 방법

藏色散人
藏色散人원래의
2022-11-25 09:27:431635검색

PHP에서 콘텐츠 일부를 바꾸는 방법: 1. PHP 샘플 파일을 만듭니다. 2. "mb_strlen($username,'utf-8');"을 통해 문자열 길이를 계산합니다. 4. 문자열의 마지막 부분을 가로채거나 문자열의 처음 두 부분을 제거합니다. 5. "str_replace_once"를 통해 문자를 바꿉니다.

PHP에서 내용의 일부를 바꾸는 방법

이 튜토리얼의 운영 환경: 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).&#39;<br>&#39;;  //13   数字+中文+英文=2+6+5
echo mb_strlen($str,&#39;utf8&#39;).&#39;<br>&#39;;//9 //  数字+中文+英文=2+2+5
echo mb_strlen($str,&#39;gbk&#39;).&#39;<br>&#39;;//10   数字+中文+英文=2+3+5
echo mb_strlen($str,&#39;gb2312&#39;).&#39;<br>&#39;;//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=&#39;33三三three&#39;;
echo mb_substr($str,0,3,&#39;utf8&#39;).&#39;<br>&#39;;  // 33三三

3.str_repeat()

기능: 문자열을 지정된 횟수만큼 반복합니다

Syntax: str_repeat(string $str,int $repeat)

str: String

repeat: 반복 횟수

코드 예

$str=&#39;33三三&#39;;
echo str_repeat($str,10).&#39;<br>&#39;;  // 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=&#39;33三二一&#39;;
echo mb_strpos($str,"一",0).&#39;<br>&#39;;  //  4
echo mb_strpos($str,"一",0,&#39;utf8&#39;).&#39;<br>&#39;;//  4
echo mb_strpos($str,"一",0,&#39;gbk&#39;).&#39;<br>&#39;;//   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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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