PHP。有人能帮我准备比赛吗?
我有包含元素的html代码。 我想做的是,我需要这个表单元素的整个html代码。 例如,在下面的html代码中PHP。有人能帮我准备比赛吗?,php,regex,forms,Php,Regex,Forms,我有包含元素的html代码。 我想做的是,我需要这个表单元素的整个html代码。 例如,在下面的html代码中 ... <p>Sample</p> <img src="..." /> <form method="post" > <input type="hidden" value="v1" id="v1" name="task"> <input type="hidden" value="v2" name="v2"&
...
<p>Sample</p>
<img src="..." />
<form method="post" >
<input type="hidden" value="v1" id="v1" name="task">
<input type="hidden" value="v2" name="v2">
...
</form>
<div>...</div>
...
。。。
样品
...
...
...
我想提取这些代码:
<form method="post" >
<input type="hidden" value="v1" id="v1" name="task">
<input type="hidden" value="v2" name="v2">
...
</form>
...
因为我不太熟悉preg_match表达式,所以我几乎无法理解它。
我自己用谷歌搜索来理解这些表达,但只能得到一小部分的理解
有人能帮我吗?
致以最诚挚的问候。使用正则表达式处理HTML通常不是一个好主意。我建议使用HTML解析器。我使用这个库取得了很好的效果:使用正则表达式来处理HTML通常不是一个好主意。我建议使用HTML解析器。我使用这个库取得了很好的效果:匹配表单标记的正则表达式可能是这样的:“
(?smi)匹配表单标记的正则表达式可能是这样的:”(?smi)对于像在html中匹配表单标记这样微不足道的事情,不要使用正则表达式或第三方xhtml解析器
改为使用默认值
简单到:
// Create a new DOM Document to hold our webpage structure
$xml = new DOMDocument();
// Load the html's contents into DOM
$xml->loadHTML($html);
$forms = array();
//Loop through each <form> tag in the dom and add it to the $forms array
foreach($xml->getElementsByTagName('form') as $form) {
//Get the node's html string
$forms[] = $form->ownerDocument->saveXML($form);
}
//创建一个新的DOM文档来保存我们的网页结构
$xml=newdomdocument();
//将html的内容加载到DOM中
$xml->loadHTML($html);
$forms=array();
//循环遍历dom中的每个标记,并将其添加到$forms数组中
foreach($xml->getElementsByTagName('form')作为$form){
//获取节点的html字符串
$forms[]=$form->ownerDocument->saveXML($form);
}
其中,$forms
是每个表单的字符串数组。对于像在html中匹配表单标记这样琐碎的事情,不要使用正则表达式或第三方xhtml解析器
改为使用默认值
简单到:
// Create a new DOM Document to hold our webpage structure
$xml = new DOMDocument();
// Load the html's contents into DOM
$xml->loadHTML($html);
$forms = array();
//Loop through each <form> tag in the dom and add it to the $forms array
foreach($xml->getElementsByTagName('form') as $form) {
//Get the node's html string
$forms[] = $form->ownerDocument->saveXML($form);
}
//创建一个新的DOM文档来保存我们的网页结构
$xml=newdomdocument();
//将html的内容加载到DOM中
$xml->loadHTML($html);
$forms=array();
//循环遍历dom中的每个标记,并将其添加到$forms数组中
foreach($xml->getElementsByTagName('form')作为$form){
//获取节点的html字符串
$forms[]=$form->ownerDocument->saveXML($form);
}
其中,$forms
是每个表单的字符串数组。。链接问题的公认答案应该会给你必要的提示。@Linus:别忘了经典的@grawity Yes。我的最爱。在取出XHTML正则表达式鞭子时,我交替使用这一个和另一个。。链接问题的公认答案应该会给你必要的提示。@Linus:别忘了经典的@grawity Yes。我的最爱。取出XHTML-regex-whip时,我在这一部分和另一部分之间交替。(?smi)部分做什么?在Perl正则表达式中,它打开标志以匹配^和$作为行的开始和结束(m),匹配点作为新行字符(s)和大小写instive(I)(?smi)做什么do部分?在Perl正则表达式中,它打开标志以匹配^和$作为行的开始和结束(m),匹配点作为新行字符(s),并在INSTIVE(i)中使用大小写