У меня есть эта функция, чтобы получить название веб-сайта:
function getTitle($Url){ $str = file_get_contents($Url); if(strlen($str)>0){ preg_match("/\<title\>(.*)\<\/title\>/",$str,$title); return $title[1]; } }
Однако эта функция делает мою страницу слишком много времени для ответа. Кто-то говорит мне, чтобы получить заголовок по заголовку запроса только на веб-сайте, который не будет читать весь файл, но я не знаю, как это сделать. Может кто-нибудь, пожалуйста, скажите мне, какой код и функции я должен использовать для этого? Большое спасибо.
Использование regex – не очень хорошая идея для HTML, вместо этого используйте DOM Parser
$html = new simple_html_dom(); $html->load_file('****'); //put url or filename $title = $html->find('title'); echo $title->plaintext;
или
// Create DOM from URL or file $html = file_get_html('*****'); // Find all images foreach($html->find('title') as $element) echo $element->src . '<br>';
Хорошо для чтения
Используйте jQuery Вместо этого, чтобы получить название вашей страницы
$(document).ready(function() { alert($("title").text()); });
попробуйте, это будет работать уверенно
include_once 'simple_html_dom.php'; $oHtml = str_get_html($url); $Title = array_shift($oHtml->find('title'))->innertext; $Description = array_shift($oHtml->find("meta[name='description']"))->content; $keywords = array_shift($oHtml->find("meta[name='keywords']"))->content; echo $title; echo $Description; echo $keywords;