Я создал функцию, которая проверяет, содержит ли тег <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).