【发布时间】:2013-12-27 23:50:32
【问题描述】:
我创建了一个函数来检查外部页面的<title> 标记是否包含特定单词(在标题的其他单词之间)。如果检查是肯定的,它应该回显(整个)页面<title>。
<?php
function file_get_contents_curl($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$html = file_get_contents_curl("http://www.lastfm.it/user/lorenzone92/now");
$doc = new DOMDocument();
@$doc->loadHTML($html);
$nodes = $doc->getElementsByTagName('title');
$title = $nodes->item(0)->nodeValue;
if (strpos($title,'in ascolto') !== false) {
echo "$title". '<br>';
}
?>
它工作正常。我担心的是内存消耗和服务器负载。问题是我无法缓存 $html 因为它是一个活的东西..有什么想法吗?我是否需要抓取整个页面才能访问<title>?其他方法而不是 cURL 和 file_get_contents 来减少服务器负载?还是我太担心了..? :)
注意:不要担心 PHP 版本(没有限制,我在我的 VPS 上安装了 PHP 5.5.7 :D)。
【问题讨论】:
-
我不确定,但我认为您的问题没有解决方案。
标签: php optimization curl memory-consumption server-load