PHP变量搞乱了img输入

时间:2012-06-03 20:06:50

标签: php stripslashes

在我的代码中,我让PHP将变量写入文本文件。

$stringData = '<p class="blogcontent">' . $content . '</p>';
fwrite($fh, $stringData);

变量$content包含此<img src="bpictures/blue.jpg" width="200" />

但是当变量写入文本文件时,会将其写入其中。

<img src=\"bpictures/blue.jpg\" width=\"200\" />

这会导致图像在返回html时无法正常工作。我已经尝试使用echo stripslashes($content);,但这不起作用,有没有什么方法可以写入文本文件只是我在变量中的直接代码?我无法在Google上找到答案。

如何制作内容。

<span class="addblog">Content (Include img tags from below):</span> <textarea cols="90" rows="50" name="bcontent">  </textarea> <br />

提交。

$content = $_POST["bcontent"];

代码还有很多,但这大部分都会影响内容。

1 个答案:

答案 0 :(得分:3)

问题是您已启用magic_quotes

如果你无法在 php.ini 上禁用它们,你可以使用我之前在stackoverflow上找到的这个函数,在运行时禁用它:

<?php
if (get_magic_quotes_gpc()) {
    function stripslashes_gpc(&$value)
    {
        $value = stripslashes($value);
    }
    array_walk_recursive($_GET, 'stripslashes_gpc');
    array_walk_recursive($_POST, 'stripslashes_gpc');
    array_walk_recursive($_COOKIE, 'stripslashes_gpc');
    array_walk_recursive($_REQUEST, 'stripslashes_gpc');
}
?>

找到与此主题相关的原始帖子here

还有其他解决方案,但这是我用过的解决方案。


EDITED

从上面的链接一个简单的解决方案来处理$_POST

if (get_magic_quotes_gpc()) {
  $content = stripslashes($_POST['bcontent']);
}else{
  $content = $_POST['bcontent'];
}