Javascript 用html文件中的html标记替换文本

Javascript 用html文件中的html标记替换文本,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我为我的一个客户创建了一个简单的jquery插件,它获取他的HTML文件,允许他点击一个区域,并替换其HTML内容 例如,单击div,将提示他输入新文本的表单。单击“ok”时,它将发送ajax请求,其中包含他单击的div的HTML代码 在PHP中,我将检查从Ajax发送的所有标记,我想用不同的文本替换它们,然后保存新创建的HTML文件 假设我得到: <h1>Welcome to my Website!</h1> 欢迎访问我的网站! 我想把它改成他以前指定的任何东西 所

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

例如,单击div,将提示他输入新文本的表单。单击“ok”时,它将发送ajax请求,其中包含他单击的div的HTML代码

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

假设我得到:

<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';

尝试使用
preg\u replace
功能,而不是使用
str\u replace
功能。此链接可能会有所帮助。

请尝试使用
preg\u replace
功能,而不是使用
str\u replace
功能。此链接可能会有所帮助。

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

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

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

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


您不能使用
带标签()
?这有什么关系?我正在从jquery发送HTML代码,以便稍后替换。我还想替换标签,而不是剥掉它们。i、 把你好换成你好。通过点击hello,我将这个标记发送到php,用预定义的不同标记替换。你不应该使用ajax发送整个html标记。只需发送元素的.text或输入标记的.val。您是否也需要发送html标记?当然可以,因为我在替换这些标记时正在将html属性添加到这些标记中。我想用不同的代码块替换整个代码块。例如,在标记中添加一个onclick属性看看这一点,你不能使用
strip\u tags()
?这有什么关系?我正在从jquery发送HTML代码,以便稍后替换。我还想替换标签,而不是剥掉它们。i、 把你好换成你好。通过点击hello,我将这个标记发送到php,用预定义的不同标记替换。你不应该使用ajax发送整个html标记。只需发送元素的.text或输入标记的.val。您是否也需要发送html标记?当然可以,因为我在替换这些标记时正在将html属性添加到这些标记中。我想用不同的代码块替换整个代码块。例如,在标记中添加一个onclick属性看看这一点,你不能使用
strip\u tags()
?这有什么关系?我正在从jquery发送HTML代码,以便稍后替换。我还想替换标签,而不是剥掉它们。i、 把你好换成你好。通过点击hello,我将这个标记发送到php,用预定义的不同标记替换。你不应该使用ajax发送整个html标记。只需发送元素的.text或输入标记的.val。您是否也需要发送html标记?当然可以,因为我在替换这些标记时正在将html属性添加到这些标记中。我想用不同的代码块替换整个代码块。例如,在标记中添加一个onclick属性查看一下,我不想更改文本,整个代码块这不会更改文本,只需删除HTMLAgain,我想更改整个代码块,包括HTML.yes,包含文本的HTML标记和其他HTML标记。用户在客户端单击某个区域,我用jquery(e.target)获取它,然后用ajax发送。在不知道插件的更多功能的情况下,我建议您只需让插件在UI中操作HTML,然后将更改后的整个HTML块传递回服务器,并用新块替换它即可。不需要以这种方式迭代任何代码。我不想更改文本,整个代码块。这不会更改文本,只需去除HTMLAgain,我想更改整个代码块,包括HTML。是的,包含文本的HTML标记和其他HTML标记。用户在客户端单击某个区域,我用jquery(e.target)获取它,然后用ajax发送。在不知道插件的更多功能的情况下,我建议您只需让插件在UI中操作HTML,然后将更改后的整个HTML块传递回服务器,并用新块替换它即可。不需要以这种方式迭代任何代码。我不想更改文本,整个代码块。这不会更改文本,只需去除HTMLAgain,我想更改整个代码块,包括HTML。是的,包含文本的HTML标记和其他HTML标记。用户在客户端单击某个区域,我用jquery(e.target)获取它,然后用ajax发送。在不知道插件的更多功能的情况下,我建议您只需让插件在UI中操作HTML,然后将更改后的整个HTML块传递回服务器,并用新块替换它即可。不需要以这种方式迭代任何代码。
function stripHtml(str) {
  return $('<div></div>').html(str).text();
}