>백엔드 개발 >PHP 문제 >PHP에서 문자가 깨지지 않고 문자열 뒤집기를 달성하는 방법

PHP에서 문자가 깨지지 않고 문자열 뒤집기를 달성하는 방법

藏色散人
藏色散人원래의
2021-10-28 09:26:091520검색

PHP에서 잘못된 문자 없이 문자열을 뒤집는 방법: 1. PHP 샘플 파일을 만들고 인코딩을 utf8로 설정합니다. 2. mb_strlen 함수를 사용하여 utf8 문자열의 길이를 가져옵니다. 3. 문자열을 배열로 나눕니다. 4. , 배열 키 이름의 크기를 반대로 바꿉니다. 5. 배열의 단일 문자 요소를 문자열로 다시 결합합니다.

PHP에서 문자가 깨지지 않고 문자열 뒤집기를 달성하는 방법

이 기사의 운영 환경: 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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