0

嗨,如果有人可以帮助我处理我的 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);

但是没有用,谁能帮帮我?

4

2 回答 2

3

不要使用正则表达式解析 HTML。阅读

$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') );
于 2013-01-11T00:48:35.277 回答
1

".*" 是一个贪心匹配,即如果有后一个可以匹配,它会在第一个引号之外徘徊。使用 [^"]* 而不是 .* 来匹配除引号之外的所有字符。

于 2013-01-11T00:46:49.407 回答