>  기사  >  백엔드 개발  >  사용자 정의 함수를 사용하여 PHP 문자열에서 악센트를 제거하는 방법은 무엇입니까?

사용자 정의 함수를 사용하여 PHP 문자열에서 악센트를 제거하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-12 16:51:02372검색

How to Remove Accents from Strings in PHP Using a Custom Function?

사용자 정의 함수를 사용하여 PHP 문자열의 문자에서 악센트를 제거하는 방법

PHP iconv 함수를 사용하여 문자열에서 악센트를 제거할 수 있습니다. 문자열, 잘못된 iconv 구현과 같은 특정 요인으로 인해 효율성이 저하될 수 있습니다. 다행히도 변환표를 활용하는 사용자 정의 함수를 활용하는 대안 방법이 있습니다.

단계:

  1. 변환표 만들기:
    악센트 문자를 해당 기본 문자에 매핑하는 배열($chars)을 정의합니다. 예:
    $chars = [chr(195).chr(128) => 'A', chr(195).chr(129) => 'A', ... ];
  2. 사용자 정의 함수 작성:
    문자열을 입력으로 사용하고 변환 테이블을 여기에 적용하는 함수를 만듭니다. 기본 대응 문자와 함께 악센트가 있는 문자. 예:

    function remove_accents($string) {
        $string = strtr($string, $chars);
        return $string;
    }
  3. 함수 사용:
    원하는 문자열에 대해 Remove_accents() 함수를 호출하여 악센트를 제거합니다. 예:

    $input = "Fóø Bår";
    
    // Call the function
    $output = remove_accents($input);
    
    // Display the result
    print($output);

예상 출력:

F'oo Bar

사용자 정의 변환 테이블:

다음은 변환표의 예입니다. 사용:

[
    // Decompositions for Latin-1 Supplement
    chr(195).chr(128) => 'A', chr(195).chr(129) => 'A',
    chr(195).chr(130) => 'A', chr(195).chr(131) => 'A',
    chr(195).chr(132) => 'A', chr(195).chr(133) => 'A',
    chr(195).chr(135) => 'C', chr(195).chr(136) => 'E',
    chr(195).chr(137) => 'E', chr(195).chr(138) => 'E',
    chr(195).chr(139) => 'E', chr(195).chr(140) => 'I',
    chr(195).chr(141) => 'I', chr(195).chr(142) => 'I',
    chr(195).chr(143) => 'I', chr(195).chr(145) => 'N',
    chr(195).chr(146) => 'O', chr(195).chr(147) => 'O',
    chr(195).chr(148) => 'O', chr(195).chr(149) => 'O',
    chr(195).chr(150) => 'O', chr(195).chr(153) => 'U',
    chr(195).chr(154) => 'U', chr(195).chr(155) => 'U',
    chr(195).chr(156) => 'U', chr(195).chr(157) => 'Y',
    chr(195).chr(159) => 's', chr(195).chr(160) => 'a',
    chr(195).chr(161) => 'a', chr(195).chr(162) => 'a',
    chr(195).chr(163) => 'a', chr(195).chr(164) => 'a',
    chr(195).chr(165) => 'a', chr(195).chr(167) => 'c',
    chr(195).chr(168) => 'e', chr(195).chr(169) => 'e',
    chr(195).chr(170) => 'e', chr(195).chr(171) => 'e',
    chr(195).chr(172) => 'i', chr(195).chr(173) => 'i',
    chr(195).chr(174) => 'i', chr(195).chr(175) => 'i',
    chr(195).chr(177) => 'n', chr(195).chr(178) => 'o',
    chr(195).chr(179) => 'o', chr(195).chr(180) => 'o',
    chr(195).chr(181) => 'o', chr(195).chr(182) => 'o',
    chr(195).chr(182) =&gt> 'o', chr(195).chr(185) => 'u',
    chr(195).chr(186) => 'u', chr(195).chr(187) => 'u',
    chr(195).chr(188) => 'u', chr(195).chr(189) => 'y',
    chr(195).chr(191) => 'y',
    // Decompositions for Latin Extended-A
    chr(196).chr(128) => 'A', chr(196).chr(129) => 'a',
    chr(196).chr(130) => 'A', chr(196).chr(131) => 'a',
    chr(196).chr(132) => 'A', chr(196).chr(133) => 'a',
    chr(196).chr(134) => 'C', chr(196).chr(135) => 'c',
    chr(196).chr(136) => 'C', chr(196).chr(137) => 'c',
    chr(196).chr(138) => 'C', chr(196).chr(139) => 'c',
    chr(196).chr(140) => 'C', chr(196).chr(141) => 'c',
    chr(196).chr(142) => 'D', chr(196).chr(143) => 'd',
    chr(196).chr(144) => 'D', chr(196).chr(145) => 'd',
    chr(196).chr(146) => 'E', chr(196).chr(147) => 'e',
    chr(196).chr(148) => 'E', chr(196).chr(149) => 'e',
    chr(196).chr(150) => 'E', chr(196).chr(151) => 'e',
    chr(196).chr(152) => 'E', chr(196).chr(153) => 'e',
    chr(196).chr(154) => 'E', chr(196).chr(155) => 'e',
    chr(196).chr(156) => 'G', chr(196).chr(157) => 'g',
    chr(196).chr(158) => 'G', chr(196).chr(159) => 'g',

위 내용은 사용자 정의 함수를 사용하여 PHP 문자열에서 악센트를 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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