php file_put_contents字符问题

时间:2014-05-17 20:31:48

标签: php

我写了一个简单的文件编辑器

这里是代码:

<?php
$file_path = "/home/user/file.php";
$file = file_get_contents($file_path);
print'  <form method="post">
    <textarea name="content" rows="20" cols="150">';
    echo $file;
    print'</textarea>
    <input type="submit" name="save" value="save !">
    </form>';
if ( isset($_POST['save']) ) {


    $content = $_POST['content'];
    if ( file_exists($file_path) ) {
    echo "$file_path Updated"."<br>";
    file_put_contents($file_path,$content);


    }
    else {
    echo "The file $filenames does not exist";
    file_put_contents($file_path, ''); //Create empty file  
    }
}

在此文件中$file我有一些html代码,如

<div class="banner">
<a href="http://google.com/" target="_blank" rel="nofollow">
<img alt="" src="http://google.com/logo.png" ></a>
<br>
</div>

但是当我通过这个脚本保存它们时,它就是

<div class=\"banner\">
<a href=\"http://google.com/\" target=\"_blank\" rel=\"nofollow\">
<img alt=\"\" src=\"http://google.com/logo.png\" ></a>
<br>
</div>

它在localhost中运行正常,我不知道什么是问题,

1 个答案:

答案 0 :(得分:0)

magic_quotes_gpc已启用。在php.ini中禁用它,或在全局包含中执行类似的操作:

if(get_magic_quotes_gpc()) {
    $_POST = array_map('stripslashes', $_POST);
    $_GET = array_map('stripslashes', $_GET);
    $_COOKIE= array_map('stripslashes', $_COOKIE);
}