如果有人可以帮助我使用我的preg_match,我想要这个代码中的标题
<dt class="gallery-icon">
<a href="?attachment_id=31" title="title">
<img width="150" height="150" src="librosdefirmas-bodas-1-150x150.jpg" class="attachment-thumbnail" alt="Caption">
</a>
</dt>
我有这个:
preg_match_all('/<dt class="gallery-icon">\s*<a href="(.*)" title="(.*)".*>/is', $page_columns[0], $titles);
但谁能帮助我呢?
答案 0 :(得分:3)
不要使用正则表达式解析HTML。 Read
$html = '
<dt class="gallery-icon">
<a href="?attachment_id=31" title="title">
<img width="150" height="150" src="librosdefirmas-bodas-1-150x150.jpg" class="attachment-thumbnail" alt="Caption">
</a>
</dt>
';
$dom_document = new DOMDocument();
$dom_document->loadHTML($html);
$dom_xpath = new DOMXpath($dom_document);
$elements = $dom_xpath->query("//dt/a");
print_r( $elements->item(0)->getAttribute('title') );
答案 1 :(得分:1)
“。*”是一个贪婪的匹配,即如果有一个它可以匹配的话,它会在第一个引号之外徘徊。使用[^“] *代替。*来匹配除引号之外的所有字符。