2013-01-08 5 views
2
$a = $_GET['a']; 
$d = array("æ", "ø", "å", "Æ", "Ø", "Å"); 
$e = array("&aelig", "&oslash", "&aring", "&AElig", "&Oslash", "&Aring"); 
$new = str_replace("$d","$e","$a"); 
echo $new; 

아무도 내가 여기서 잘못하고있는 것을 말해 줄 수 있습니까? 난 그냥 쓰는 경우가 완벽하게 잘 작동 : 배열이있는 str_replace

$a = $_GET['a']; 
new = str_replace("ø","&oslash","$a"); 
echo $new; 

그런 다음이어야은 "ø는"교체,하지만 난 정말 두 개의 배열 대신 한 번에 하나의 편지를 교체와 함께하고 싶은, 6 회 ...

답변

5
$new = str_replace($d, $e, $a); 

변수로 구성된 문자열이 아니라 변수를 전달합니다.

당신은 첫 번째 배열입니다,이 코드

$a = array(123); 
var_dump($a); 
var_dump("$a"); 

당신이 알 수에서 출력을 비교하면, 그리고 두 번째는 암시 적으로 문자열로 캐스트 배열 문자열입니다.

+0

doh, 감사합니다. 이 쓸모없는 게시물을 어떻게 든 삭제할 수 있습니까? –

+0

@Simon Sondrup Kristensen : 내 대답을 잘 확인하십시오 :-) (15 분이 지난 후에 응답 등급 번호 바로 아래에 체크 표시가 나타납니다) – zerkms