2012-09-13 2 views
0

나는이 같은 코드의 라인을 가진 파일이 있습니다PHP 이스케이프 문자는 끌려 가고

$var = "<link rel=\"stylesheet\" href=\"" . GLOBAL_PATH . "system/modules/" . $path . "/" . $css . "\" media=\"screen\">" 

난 다음 다시 서버에 저장으로 파일을 열기있어합니다. 나는에 fwrite()를 사용하여 서버에 다시 저장 한 다음 다시 열면 나는이 얻을 : 따옴표를 이스케이프 슬래시가 사라

$var = "<link rel="stylesheet" href="" . GLOBAL_PATH . "system/modules/" . $path . "/" . $css . "" media="screen">" 

....

+0

문자열에 작은 따옴표를 사용할 수 없습니까? – Narretz

+1

fwrite를 사용하는 경우 슬래시를 이스케이프해야하거나 작은 따옴표를 사용해야 할 수도 있습니다. –

답변

1

기술적으로 원래의 문자열에 없었기 때문에 "사라졌습니다".

$str = "\""; 
echo strlen($str); // 1, not 2! 

... $str와 같은 문자열을 저장하는 하나 개의 기호 (이중 따옴표를) 및 백 슬래시는 리터럴 문자열의 끝으로 오해되지 않도록하는 데 사용됩니다 이것을 고려하십시오. PHP는 마술 (magic_quotes_runtime 지시문) '손실'슬래시를 복원 할 수 있지만

, 그것은 PHP 5.3에서 사용되지 않으며 은 5.4을 제거합니다.

addslashes() 기능을 사용하는 경우 실제로에 복원해야합니다.

$str = "\""; 
echo addslashes($str); // \" 
관련 문제