我在许多论坛中搜索过替换标签之间的文本,但我得到的是如何删除标签之间的文本等等。这不是我想要的。这是一个小例子,你可以理解我在说什么。 我想替换:
<form action="link1" method="post" name="form" id="form">
我想要做的是摆脱这种形式并将其改为:
<form action="link2" ....>
现在,我的问题不是替换,而是选择表格标签 我希望你理解我。
答案 0 :(得分:1)
您有结构化数据(html是结构化数据),因此请使用此结构。你想要做的是更改属性值,使用DOMDocument很容易:
$dom = new DOMDocument;
$dom->loadHTML($yourHTML);
$formTagList = $dom->getElementsByTagName('form');
foreach ($formTagList as $formNode) {
if ($formNode->hasAttribute('action') && $formNode->getAttribute('action') === 'link1')
$formNode->setAttribute('action', 'link2');
}
$result = $dom->saveHTML();
答案 1 :(得分:0)
如果要使用正则表达式,则应使用preg_replace - http://php.net/manual/en/function.preg-replace.php。如果你有一个样本文档和你想要的输出,那也会有所帮助。
答案 2 :(得分:0)
我不确定我是否理解你的问题,但根据你的样本,它非常简单。你可以使用这个正则表达式:
<form.*?>
替换字符串
<form action="link2" ....>
<强> Working demo 强>
Php代码
$re = "/<form.*?>/";
$str = "<form action=\"link1\" method=\"post\" name=\"form\" id=\"form\"></form>";
$subst = "<form action=\"link2\" ....>";
$result = preg_replace($re, $subst, $str);
//result:
// <form action="link2" ....></form>