PHP에서 악센트 문자 바꾸기
주어진 코드는 악센트 문자를 일반 문자로 바꾸도록 설계되었습니다. 그러나 strtolower() 함수는 유니코드 문자를 변환하지 않기 때문에 É와 같은 문자를 E로 변환하는 데 실패합니다. 이 문제를 해결하려면 다른 접근 방식을 활용할 수 있습니다.
제공된 코드에서 preg_replace()와 함께 정규식을 사용하는 것은 이 작업에 너무 복잡합니다. 대신 strtr() 함수를 사용하여 더 간단하고 효율적인 방법을 사용할 수 있습니다.
strtr() 함수는 수정할 문자열과 문자 매핑이 포함된 배열이라는 두 가지 인수를 사용합니다. 키가 악센트 문자이고 값이 대체 문자인 배열을 만들 수 있습니다.
예:
$unwanted_array = array( 'Š' => 'S', 'š' => 's', 'Ž' => 'Z', 'ž' => 'z', 'À' => 'A', 'Á' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A', 'Å' => 'A', 'Æ' => 'A', 'Ç' => 'C', 'È' => 'E', 'É' => 'E', 'Ê' => 'E', 'Ë' => 'E', 'Ì' => 'I', 'Í' => 'I', 'Î' => 'I', 'Ï' => 'I', 'Ñ' => 'N', 'Ò' => 'O', 'Ó' => 'O', 'Ô' => 'O', 'Õ' => 'O', 'Ö' => 'O', 'Ø' => 'O', 'Ù' => 'U', 'Ú' => 'U', 'Û' => 'U', 'Ü' => 'U', 'Ý' => 'Y', 'Þ' => 'B', 'ß' => 'Ss', 'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'a', 'ç' => 'c', 'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i', 'ð' => 'o', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o', 'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ý' => 'y', 'þ' => 'b', 'ÿ' => 'y' );
이 배열이 있으면 strtr()를 사용하여 다음을 수행할 수 있습니다. 주어진 문자열에서 악센트 문자를 바꿉니다.
$originalString = "Éric Cantona"; $modifiedString = strtr($originalString, $unwanted_array); echo "Original: $originalString\n"; echo "Modified: $modifiedString\n";
이 접근 방식은 악센트 문자를 일반 문자로 올바르게 대체하여 원하는 결과를 얻습니다. 출력:
Original: Éric Cantona Modified: Eric Cantona
위 내용은 PHP에서 악센트 문자를 효율적으로 대체하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!