Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从字符串中搜索并替换html元素_Php_Regex - Fatal编程技术网

Php 从字符串中搜索并替换html元素

Php 从字符串中搜索并替换html元素,php,regex,Php,Regex,如何使用php删除所有表单元素及其内容。我应该在preg_替换中插入什么图案 HTML字符串: <p>Hey I am a boy</p> <form id='id1' class='class1'>Content</form> <p>Hey I am a girl</p> <form id='id1' class='class1'>content</form> 嘿,我是个男孩 内容 嘿,我是一个女

如何使用php删除所有表单元素及其内容。我应该在preg_替换中插入什么图案

HTML字符串:

<p>Hey I am a boy</p>
<form id='id1' class='class1'>Content</form>
<p>Hey I am a girl</p>
<form id='id1' class='class1'>content</form>
嘿,我是个男孩

内容 嘿,我是一个女孩

内容 Preg_replace应返回字符串:

<p>I am a boy</p>
<p>Hey I am a girl</p>
我是个男孩

嘿,我是一个女孩


我希望从返回字符串中去掉所有表单元素,使用下面的正则表达式,然后用空字符串替换匹配项

(?s)(^|\n)?<form\b.*?<\/form>

(?s)(^ |\n)?使用下面的正则表达式,然后用空字符串替换匹配项

(?s)(^|\n)?<form\b.*?<\/form>
(?s)(^ |\n)?
]*>((?!)*
尝试此操作。替换为
空字符串
。请参阅演示

]*>((?!))*
尝试此操作。替换为
空字符串
。请参阅演示

您可以使用以下功能:

preg_replace('#<form*>*</form>#isU','',$str);
preg#u replace(“#*#isU”,“$str”);
您可以使用以下功能:

preg_replace('#<form*>*</form>#isU','',$str);
preg#u replace(“#*#isU”,“$str”);

您可以使用strip\u tag删除所有标记,但将
作为第二个参数传递,以仅返回该参数

echo strip_tags($text, '<p>');
echo strip_标签($text,);
如果不起作用,请使用:

echo preg_replace('/<form[^>]*>([\s\S]*?)<\/form[^>]*>/', '', '$text);
echo preg\u replace('/]*>([\s\s]*?)]*>/',''''.$text);

您可以使用strip\u tag删除所有标记,但将
作为第二个参数传递,以仅返回该参数

echo strip_tags($text, '<p>');
echo strip_标签($text,);
如果不起作用,请使用:

echo preg_replace('/<form[^>]*>([\s\S]*?)<\/form[^>]*>/', '', '$text);
echo preg\u replace('/]*>([\s\s]*?)]*>/',''''.$text);

strip tag solve ur problem is strip\u tags也会删除标记内容吗?strip tag不够,因为所有html标记都不在需要的地方。strip tag solve ur problem is strip\u tags也会删除标记内容吗?strip tag不够,因为所有html标记都不在需要的地方。它不会删除标记内容,而不是
<代码>删除标签
仅删除标签,不删除内容。它不会删除标签的内容,而不是
strip_tags
仅剥离标记,不删除内容。工作正常,但使用不理想的分页符替换表单元素,但使用不理想的分页符替换表单元素