Php 包含HTML标记之间新行的可能性的正则表达式
我有这样的模式:Php 包含HTML标记之间新行的可能性的正则表达式,php,regex,Php,Regex,我有这样的模式: /(\根据注释,“永远不要用正则表达式解析HTML” 改用解析器:它不太难,而且给了您很多可能性 使用DOMDocument和DOMXPath查看这些HTML示例: $dom = new DOMDocument(); libxml_use_internal_errors(1); $dom->loadHTML( $html ); $xpath = new DOMXPath( $dom ); 首先,initDOMDocument,加载HTML和initDOMXPath: $
/(\根据注释,“永远不要用正则表达式解析HTML”
改用解析器:它不太难,而且给了您很多可能性
使用DOMDocument
和DOMXPath
查看这些HTML示例:
$dom = new DOMDocument();
libxml_use_internal_errors(1);
$dom->loadHTML( $html );
$xpath = new DOMXPath( $dom );
首先,initDOMDocument
,加载HTML和initDOMXPath
:
$dom = new DOMDocument();
libxml_use_internal_errors(1);
$dom->loadHTML( $html );
$xpath = new DOMXPath( $dom );
要检索所有
src
属性:
$iframes = $dom->getElementsByTagName( 'iframe' );
foreach( $iframes as $iframe )
{
echo $iframe->getAttribute( 'src' ) . PHP_EOL;
}
要从itemprop
属性duration
中检索“1818”:
$duration = $xpath->query( '//span[@itemprop="duration"]/@content' );
echo $duration->item(0)->nodeValue . PHP_EOL;
上述xPath模式意味着:
//选择以下模式,无论它们在文档中的什么位置
带标记的span='span'
[@itemprop=“duration”]属性为“itemprop”=“duration”
/@内容(获取)属性“内容”
- 阅读更多关于
- 阅读更多关于
- 阅读更多关于
永远不要用正则表达式解析HTML。请改用“它在PHP上失败”-你是怎么定义的?我刚刚测试了你的正则表达式,它可以工作well@RomanPerekhrest返回false。不匹配。将当前的php代码添加到问题中,让我们看看尝试添加/ms
修饰符以启用多行并允许
匹配换行符。我将对此进行尝试并报告。