我有这个简单的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);
如何准确地获取用户键入的内容?感谢
答案 0 :(得分:2)
快速简单的修复方法是:
fwrite($handle,stripslashes($Contents));
see the docs
或者,您可以让php将内容视为字符串格式,这也将正确返回转义字符:
fwrite($Handle,sprintf($Contents));
但是,如果您的代码中某处有%
个字符,那就太累了,如果不是sprintf
将其视为占位符,那么它必须加倍:
fwrite($Handle,sprintf(str_replace('%','%%',$Contents)));
这需要两个操作,并不是最好的方法,特别是因为我得到的印象是你正在处理一个HTML字符串(style='width:50%'
&lt; - 并非完全不可能)