2016-10-30 4 views
1

그래서 나는 GET ($ setLng)을 통해 "lang"변수를 가져 왔습니다. 출력은 정확하지만 작동하지 않습니다. 인출하지 않고 코드 내에 변수를 입력하면 문제없이 작동합니다.GET 변수가 gettext에 의해 무시되는 이유는 무엇입니까?

putenv('LC_ALL=$setLng'); 
setlocale(LC_ALL, '$setLng'); 

아무도 내가 뭘 잘못하고 있다고 말할 수 있습니까? 당신의 문자열 내부의 변수를 reconginse하지 않는 작은 따옴표 PHP를 사용하여

putenv("LC_ALL=$setLng"); 
setlocale(LC_ALL, "$setLng"); 

, 출력은 $ 기호로 문자열 (그리고하지 않습니다

답변

1

당신은 당신의 문자열에 double-quote (and not single-quote)를 사용한다 변수 내부의 값).

the manual에서입니다 :

문자열이 큰 따옴표 나 히어 닥으로되어

은, 변수는 그 안에서 해석된다.

확인이 :.

echo 'LC_ALL=$setLng'; 
echo "<br />\n"; 
echo "LC_ALL=$setLng"; 

출력은

LC_ALL=$setLng 
LC_ALL=de_DE 

(당신의 URL이 http://.../?lang=de_DE있는 사실에 근거) 이상한 일이었다

+0

는 DID 쇼 "가됩니다 나에게 가치! 그러나 따옴표를 변경하는 것은 속임수를했습니다 ... 감사합니다! – TobiasH

+0

정확히 어디에서 값을 표시할지 모르겠지만 ... th를 사용합니다. e 작은 따옴표는 그렇지 않을 수도 있습니다. – Dekel