2014-07-21 2 views
2

안녕하세요 문제가 달러 기호 문자열을 교체하는 데 문제PHP 않는 str_replace 달러 기호

$string = "The $NAME brown fox jumped over the lazy dog."; 
echo preg_replace('/\$NAME/', "Sample Name", $string); 

출력 :

The brown fox jumped over the lazy dog. 

문제는 $ 이름은 샘플 이름으로 대체되지 않는 것입니다. 내 문제를 해결하기위한 도움이 있으면 기쁠 것입니다.

+0

당신이 그런가 때문에 t 정규식 검색을 수행하고 바꿀 때 str_replace를 사용하는 것이 좋습니다 – Samosa

답변

4

PHP가 helpfully replaced the text in the string with the contents of $NAME이기 때문에 그렇습니다. 그렇게하지 말라고하십시오.

$string = 'The $NAME brown fox jumped over the lazy dog.'; 
+1

특히 ... 큰 따옴표를 사용하면 변수 이름이 파싱되어 문자열 값으로 대체되는 문자열 보간이 허용됩니다. 작은 따옴표는 문자열 보간을 허용하지 않으며, 르 거기에'$ NAME'의 리터럴 값을 유지하는 것입니다. – Brad

+0

아 .. 알았어. 고마워. – user3472449

+0

나는'$ NAME'을'{NAME} '과 같은 것으로 변경할 것입니다. 실수로 변수에 변수를 할당 할 수 없다는 의미입니다. – dpDesignz

0

큰 따옴표 (") PHP는 특수 문자를 해석하려고하기 때문에보다 오히려 작은 따옴표로 문자열을 넣어

$string = 'The $NAME brown fox jumped over the lazy dog.'; 
echo str_replace('$NAME', "Sample Name", $string); 

에게 솔루션을 사용해보십시오.

+2

...이 방법은 작동하지 않습니다. 그것은 구분 기호로 $를 사용하려고 시도하고 경고를 던집니다. – ahruss

+0

작동하지 않습니다 – Cattla

+0

죄송합니다 ... 그 유형은 str_replace를 의미합니다! – Samosa