preg_match_all接受字符串的问题

时间:2014-08-30 22:38:08

标签: php preg-match-all

我无法获取preg_match_all来获取带有类和属性的span。

这就是我想要获取/捕获的内容:

<span class="class-name" data-is-compact="false">Content</span>

这就是我的想法:

$response = file_get_contents('https://twitter.com/' . $this->twitter_sreenname . '/');    
preg_match_all('#<span class=\"class-name\" data-is-compact=\"false\">(.+?)\<\/span\>#', $response, $matches);

但我不会工作。 如果我删除:

data-is-compact=\"false\"

它有效。我做错了什么?

1 个答案:

答案 0 :(得分:3)

你没有使用好的工具。使用DOM:

$dom = new DOMDocument();
@$dom->loadHTMLFile('https://twitter.com/' . $this->twitter_sreenname . '/');
$xpath = new DOMXPath($dom);
$query = '//span[@class="class-name" and @data-is-compact="false"]/text()';
$nodes = $xpath->query($query);

foreach($nodes as $node) {
    echo $node->nodeValue . "\n";
}