1

私はウェブサイトのタイトルを取得するためにこの機能を持っています:

function getTitle($Url){
$str = file_get_contents($Url);
if(strlen($str)>0){
    preg_match("/\<title\>(.*)\<\/title\>/",$str,$title);
    return $title[1];
}
}

ただし、この機能により、ページの応答に時間がかかりすぎてしまいました。ファイル全体を読み取らない Web サイトのリクエスト ヘッダーのみでタイトルを取得するように誰かに言われましたが、方法がわかりません。これを行うためにどのコードと関数を使用すればよいか教えてください。どうもありがとうございました。

4

3 に答える 3

3

正規表現を HTML に使用することはお勧めできません。代わりに DOM パーサーを使用してください

$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>';

よく読んだ

  1. 正規表現は、XHTML 自己完結型タグを除く開始タグに一致します
于 2012-12-25T05:16:39.630 に答える
0

代わりに jQuery を使用して、ページのタイトルを取得します

$(document).ready(function() {
    alert($("title").text());
});​

デモ: http://jsfiddle.net/WQNT8/1/

于 2012-12-25T06:10:26.693 に答える
0

これを試してみてください

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;
于 2013-09-20T07:09:12.817 に答える