0

我有这个简单的 PHP 变量:

$Title = $_POST['text'];

当它有这个输入时:here's the text

PHP 将在写入文件时识别为:here\'s the text

$Filename = 'index.php';
$Handle = fopen($Filename, "r");
$Contents = fread($Handle, filesize($Filename));
fclose($Handle);

$TitleTag = extractor($Contents, "<title>", "</title>");

$Contents = str_replace ($TitleTag, $Title, $Contents); 
$Handle = fopen($Filename, 'w+');
fwrite($Handle, $Contents);
fclose($Handle);

如何得到与用户输入的完全一样的内容?谢谢

4

1 回答 1

2

快速简单的解决方法是:

fwrite($handle,stripslashes($Contents));

查看文档
或者,您可以让 php 将内容视为字符串格式,这也将正确返回转义字符:

fwrite($Handle,sprintf($Contents));

但是请注意,如果您的代码中某处有%字符,则必须将其加倍,否则sprintf将其视为占位符:

fwrite($Handle,sprintf(str_replace('%','%%',$Contents)));

那么,这需要两个操作并且不是最好的方法,特别是因为我得到的印象是您正在处理 HTML 字符串(style='width:50%'<-- 并非完全不可能)

于 2012-11-06T12:55:28.530 回答