用HTML文件

时间:2015-06-17 14:22:52

标签: javascript php jquery html

我为我的客户创建了一个简单的jquery插件,它接受了他的HTML文件,并允许他点击一个区域,并替换它的HTML内容。

例如,单击div,将提示他输入新文本。点击“确定”时,它会发送一个带有他点击的div的HTML代码的ajax请求。

在PHP中,我将查看从Ajax发送的所有标记,并且我想用不同的文本替换它们,然后保存新创建的HTML文件。

让我说得到:

<h1>Welcome to my Website!</h1>

我想将其更改为之前指定的任何内容,

所以

<h1>Welcome to my Website!</h1>

将通过PHP更改为

<h2>Hello World!</h1>
PHP中的

<?Php
   ini_set('display_errors', 1);
   error_reporting(E_ALL);
    // get an edited file
    $page = file_get_contents("page.html"));

    $links = json_decode($_GET['links'], true);

    foreach($links as $link) {
        $page = str_replace($link['tag'], $link['new_tag'], $page);
    }
   file_put_contents("test.html", $page);

    print 'DONE';

但有时候str_replace不会替换标签,通过查看接受的数组来做事,一切都与page.html中存储的内容相同。

======================

修改

$ _GET ['link']的例子

array(2) {
  [0]=>
  array(3) {
    ["tag"]=>
    string(28) "<h1>Welcome to Example!</h1>"
    ["tag_modified"]=>
    string(146) "<h1 class="highlighted" onclick="location.href = 'http://www.example.com'">Welcome to Example!.</h1>"
  }
  [1]=>
  array(3) {
    ["tag"]=>
    string(179) "<p>Some Random Text.</p>"
    ["tag_modified"]=>
    string(293) "<p class="highlighted" onclick="location.href = 'http://www.example.com/'">Some Random Text.</p>"
  }
}

感谢。

2 个答案:

答案 0 :(得分:0)

请尝试使用str_replace函数,而不是使用preg_replace函数。 http://php.net/manual/en/function.preg-replace.php此链接可能有所帮助。

答案 1 :(得分:0)

如果您只想更改表单中的文本并假设您正在使用jQuery,但不允许在文本字段中使用任何HTML,那么您可以在通过ajax提交之前在页面中执行类似的操作:

function stripHtml(str) {
  return $('<div></div>').html(str).text();
}