PHP正则表达式返回零结果

PHP正则表达式返回零结果,php,regex,curl,preg-match-all,Php,Regex,Curl,Preg Match All,我有以下PHP curl和regex代码。我想从网站上获取文章标题。实际上,共有10篇文章。但代码返回零结果 PHP: 试试这个: $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);

我有以下PHP curl和regex代码。我想从网站上获取文章标题。实际上,共有10篇文章。但代码返回零结果

PHP:


试试这个:

$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/>";
$url=“www.mahsumakbas.net”;
$c=curl_init($url);
curl_setopt($c,CURLOPT_RETURNTRANSFER,true);
//curl_setopt(…您需要的其他选项…)
$html=curl_exec($c);
收尾费($c);
preg_match_all(“'(*?'si)”,$html,$matches);
foreach($key=>$val与[1]匹配)
echo$val.“
”;
您的标题分为三行。您必须设置“m”-选项。也许有帮助


但是,对于解析HTML-DOM字符串,您应该将其与getElementByTagName一起使用

,当它们向这些h2添加一个简单的额外空间或额外属性时,您认为会发生什么?tl;dr is:不要使用正则表达式解析html<代码>$results=[]$domd=@DOMDocument::loadHTML($content);foreach($domd->getElementsByTagName(“h2”)作为$h2){if($h2->getAttribute(“class”)!==“条目标题”)继续;$matches[]=$h2->textContent;}var_dump($matches)
对于($i=0;$i
不是在PHP中循环数组的方法,而是使用
foreach
。实际上,使用XPath比使用getElementsByTagName更合适,他不需要h2标记,他需要同样具有
class=“entry title”
属性的h2标记。但是,是的,他也可以稍后查看课程;)但是你的权利。XPath非常有用easier@MahsumAkbas欢迎。若问题解决了,你们可以把它标记为答案。
$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/>";