web関連

【PHP】fgets()を使って外部サイトのmetaタイトルを取得する


Warning: Undefined array key "title" in /home/twotone/twotone.me/public_html/wp-content/themes/twotone_v3/functions.php on line 789

Warning: Undefined array key "title" in /home/twotone/twotone.me/public_html/wp-content/themes/twotone_v3/functions.php on line 789

外部サイトのソースを一行づつ読み込んでくれるfgets関数を使って、titleタグがある行に当たったら読み込み処理を中断させた時の備忘録

fgets()を使って外部サイトのmetaタイトルを取得する

<?php 
$url = "https://twotone.me/";
// ファイルポインタをオープン
$file = fopen($url, "r");
// metaタイトルの中身を正規表現で取得
$pattern = '/<title>(.*)</title>/';
// ファイルを1行ずつ出力
if($file){
  while ($line = fgets($file)) {
    if( preg_match($pattern, $line, $result) ){
      // 文字コード「utf-8」に変換する
      $result = mb_convert_encoding($result,"utf-8","ASCII, JIS, UTF-8, SJIS");
      echo '<a href="'.$url.'" target="_blank">'. $result[1] .'</a>';
      break;// ループから脱出
    }
  }
}
// ファイルポインタをクローズ
fclose($file);
?>
前回(cURL)、前々回(file_get_contents)と試してきたんだけどどっちもtitleタグを見つけたら読み込み処理を中断するみたいな記述があるサイト見つからなかったから一行づつ読み込みを行うfgets()を使ってみた

Leave a Comment

入力エリアすべてが必須項目です。メールアドレスが公開されることはありません。

内容をご確認の上、送信してください。

CAPTCHA