• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPの正規表現でHTMLタグの内容を抽出したい)

PHPでHTMLタグの内容を抽出する方法

このQ&Aのポイント
  • jqueryを使用して、PHPにURLを渡して、そのURLの中のtitleタグの内容を抽出する方法について説明します。
  • コードの問題点として、レスポンスが帰ってこないことがあります。詳細な情報が必要です。
  • この質問にはPHPの正規表現を使用してHTMLタグの内容を抽出する方法が求められています。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

いくつかまずそうな感じですが・・・ まず$html=file_get_contents($_GET["url"])で本当に$htmlが返しているか? 正規表現はpreg_match_allしていますがタイトルが二重に宣言されているものを 考慮する必要はありますか?簡潔にこんな感じでも・・・ $pattern = "/(?<=<title>).+?(?=<\/title>)/mis"; preg_match($pattern,$html,$html_title); 戻すのは$html_title[0]でよいでしょう。 以下テスト <? $html=<<<eof <html> <head> <title>test head</title> </head> <body> body test </body> </html> eof; $pattern = "/(?<=<title>).+?(?=<\/title>)/mis"; preg_match($pattern,$html,$html_title); print $html_title[0]; ?>

shintaaarooo
質問者

お礼

ありがとうございます、以下のコードで試しましたところ、成功しました。 <?php $html=mb_convert_encoding(file_get_contents('http://www.yahoo.co.jp/'), 'UTF-8', 'auto');; $pattern = "/(?<=<title>).+?(?=<\/title>)/mis"; preg_match($pattern,$html,$html_title); echo $html_title[0]; ?> titleタグは1つだけですもんね。

関連するQ&A