2011-01-04 2 views

답변

1

.

<?php 
//In this form, strtr() does byte-by-byte translation 
//Therefore, we are assuming a single-byte encoding here: 
$addr = strtr($addr, "äåö", "aao"); 
?> 

일부 사용자 예를

http://php.net/manual/en/function.strtr.php

... 여기

$GLOBALS['normalizeChars'] = array(
    'Š'=>'S', 'š'=>'s', 'Ð'=>'Dj','Ž'=>'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', 'ý'=>'y', 'þ'=>'b', 'ÿ'=>'y', 'ƒ'=>'f' 
); 

return strtr($toClean, $GLOBALS['normalizeChars']); 
+1

''ß '=>'Ss'' 나에게 이해가 가지 않는다. 그것은''ß '=>'ss''이어야합니다. – treeface

+0

그 기능에 대한 PHP 문서에서 몇 가지 사용자 예제입니다. 나는 그것을 쓰지 않았다. – dqhendricks

+0

오해하지 마세요. 나는 당신에게 upvote를주었습니다. 그래서 나는 당신의 포스트를 좋아합니다. 적어도 뭔가 가치가있는 문제에 대한 대체 솔루션입니다.다시 말해서 나는 (후손을 위해) 언급해야 할 것은, '' '=>'A '는''A'=> 'AE''''''''''''''''''''''''' '=>'ae''. http://en.wikipedia.org/wiki/%C3%86 – treeface

5
$text = iconv('UTF-8', 'US-ASCII//TRANSLIT', $text); 
+0

이것은 실제로이 작업을 수행하는 가장 좋은 방법입니다. 밖으로 hackish 방법의 제비, 이것을 첫째로 시도하게 확인하십시오. – mfonda

+1

아주 잘 작동합니다. 악센트 부호가있는 문자를 기본 버전으로 정규화하는 방법은 http://ideone.com/2ZPVE – treeface

0

"á"와 "a"는 다른 문자입니다. 하나는 단순히 "억양이있는"것이 아닙니다. 문자 사이에 원하는 매핑을 정의해야합니다. 그런 다음 적절한 문자 교체 배열을 만들어 입력 문자열을 루프로 적용합니다.

-2

htmlentities()preg_replace() (두 번째 문자 선택)을 사용할 수 있습니다. 예 :의 iconv 당신의 목적을 위해 잘 작동하지 않는 경우, strtr 당신이 지정 대체 문자로 문자를 대체합니다

echo preg_replace(
'/&([a-zA-Z])(uml|acute|grave|circ|tilde|cedil|ring);/', 
'$1', 
htmlentities("Hélicoïdal")); 
+0

'htmlentities()'를 참조하십시오. –

+1

이것은 끔찍한 생각입니다. –

+0

@ 페카 : 예, 예를 참조하십시오. – greg0ire

관련 문제