2013-06-20 64 views
0

一个.html文件这是我的问题: 我有,我通过ajax两个值发送给我的html文件: “id”和“一个HTML字符串”PHP - 保存格式

<div class="myClass"><h1 class="myClass">this is my html string </h1></div> 

我收到此在我的PHP文件数据,我保存在一个.html文件中的数据:

Ajax代码:

$(".button").on("click", function(e){ 
      e.preventDefault(); 
      var string = $(".htmlString").html(); 
      $.ajax({ 
       url: "data.php", 
       type: "post", 
       data: { 
        ID: "correctID", 
        htmlString: string 
       }, 
       success: function(){ 
        alert('ok'); 
       }, 
       error:function(){ 
        alert('error'); 
       } 
      }); 
     }); 

PHP代码:

if ($_POST['id'] == "correctID") { 

    $fileLocation = $_SERVER['DOCUMENT_ROOT'] . "/www/file.html"; 
    $file = fopen($fileLocation,"w"); 
    $content = $_POST['htmlString']; 
    fwrite($file,$content); 
    fclose($file); 
} 

输出.html文件内容是这样的:

<div class=\"myClass\"><h1 class=\"myClass\"> 

问题,你看到的是“\”引号前:

我如何保存我的文件中正确html格式?

<div class="myClass"><h1 class="myClass"> 

非常感谢,一直在寻找,我发现的DOMDocument :: saveHTML,但我不能使用它,林在PHP很新..,我真的需要在我的HTML文件中的类。

+0

只是一个侧面说明

  • 通话的stripslashes:如['h1'是块元素] (http://stackoverflow.com/q/4041820/2088851),你可能不需要将它插入'div'(此外还有相同的类)。 – Voitcus

  • +0

    是的我知道,这就是例子的理由,谢谢@Voitcus – diego

    +0

    首先要做的事情就是var_dump($ _ POST)以确保它不包含引号。这会告诉你这个错误是来自js还是php。 – Virus721

    回答

    0

    你的问题是魔术引号,通过使用.htaccess文件并放置以下指令init将其关闭。

    php_flag magic_quotes_gpc Off 
    

    而且要保存文件,你可以使用

    $file_content; 
    file_put_contents("filename.html", $file_content); 
    
    +0

    我把.htaccess文件放在哪里?在根?或者在我保存我的.html文件的路径中? @ DevZer0 – diego

    +0

    你可以在脚本文件的根目录或同一级别 – DevZer0

    0

    你的问题是由magic_quotes_gpc的造成一行做。

    2个可能的解决方案:

    • 关闭magic_quotes_gpc上`$ _ POST [ 'htmlString']