这是我的代码:
$content2= preg_replace("/<([a-z][a-z0-9]*)[^>]*?(\/?)>/i",'<$1$2>', $content1);
此代码会删除我网站中所有代码的所有属性,但我想要的是仅删除form
代码中的属性。这就是我的尝试:
$content2 = preg_replace("/<form([a-z][a-z0-9]*)[^>]*?(\/?)>/i",'<$1$2>', $content1);
和
$content2 = preg_replace("/<(form[a-z][a-z0-9]*)[^>]*?(\/?)>/i",'<$1$2>', $content1);
答案 0 :(得分:1)
这应该为你做。
<?php
$content1 = '<form method="post">test</form><form>2</form><form action=\'test\' method="post" type="blah"><img><b>bold</b></form>';
$content2 = preg_replace("~<form\s+.*?>~i",'<form>', $content1);
echo $content2;
输出:
<form>test</form><form>2</form><form><img><b>bold</b></form>
说明和演示:https://regex101.com/r/oA1fV8/1
\s+
在开放form
标记后需要空格,如果我们假设有一个属性,那么我们使用.*?
将一切都带到下一个>
}。我们不需要捕获组,因为您唯一需要的是空form
元素,对吧?
答案 1 :(得分:0)