phpを使用した指定されたウェブページのタイトルが取得できずに困っています。該当のスクリプトは以下のとおりです。
正規表現で<title></title>の値を抜き出したいのですがそれができません。。
抜き出せないのはすべてもウェブページのタイトルではなく一部(例えば、http://jp.eurail.com/trains-europe/high-speed-trai)でその現象が発生している状況です。原因がわかるからおられましたらお助けいただけますと嬉しいです。
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;
}
$url = ’http://jp.eurail.com/trains-europe/high-speed-trai’;
$html = file_get_contents_curl($url);
preg_match(’/<title>(.+)<\/title>/’,$html,$matches);
$title = $matches[1];
みんなの回答 1 件
curl_setopt($ch, CURLOPT_HEADER, true);
としてヘッダ見たら原因分かったよ。
$header = array(
"User-Agent: Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko",
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
と、適当にUAを送信するようにしたら返ってきた。
関連するトピックス