0

我有一个文件,其中包含如下代码行:

$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">"

...转义引号的斜线消失了。

4

1 回答 1

1

它们并没有“消失”,因为它们在技术上不在原始字符串中。考虑一下:

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

... 因为$str字符串只存储一个符号(双引号),反斜杠用于防止它被误读为字符串文字的结尾。

虽然 PHP 能够神奇地恢复“丢失”的斜线(使用magic_quotes_runtime指令),但它在 PHP 5.3 中已被弃用并在 5.4 中被删除。

当您确实需要恢复它们时,另一种方法是使用addlashes()函数。

$str = "\"";
echo addslashes($str); // \"
于 2012-09-13T21:34:44.513 回答