PHP正则表达式返回零结果

时间:2017-01-07 11:15:49

标签: php regex curl preg-match-all

我有以下PHP curl和正则表达式代码。我想从网站上获得帖子标题。实际上,有10篇文章。但代码返回零结果。

PHP:

<?php 
$ch = curl_init();
$url = "www.mahsumakbas.net";
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$content = curl_exec($ch);
curl_close($ch);

@preg_match_all('/<h2 class="entry-title">(.*)<\/h2>/' ,$content, $matches); 


for ($i=0;  $i< sizeof($matches[1]); $i++)
    echo $matches[1][$i]."<br/>";

?>

在www.mahsumakbas.net网页上,<h2 class="entry-title">附有10 </h2>

我错过了什么?

2 个答案:

答案 0 :(得分:1)

试试这个:

$url = "www.mahsumakbas.net";
$c = curl_init($url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
//curl_setopt(... other options you want...)
$html = curl_exec($c);

curl_close($c);
preg_match_all("'<h2 class=\"entry-title\">(.*?)</h2>'si" ,$html, $matches); 

foreach($matches[1] as $key=>$val)
    echo $val."<br/>";

答案 1 :(得分:0)

您的头条新闻分为3行。您必须设置“m” - 选项。也许有帮助。

http://php.net/manual/en/reference.pcre.pattern.modifiers.php

但是对于解析HTML-DOM字符串,你应该使用DOMDocument和getElementByTagName