- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPの正規表現でHTMLタグの内容を抽出したい)
PHPでHTMLタグの内容を抽出する方法
このQ&Aのポイント
- jqueryを使用して、PHPにURLを渡して、そのURLの中のtitleタグの内容を抽出する方法について説明します。
- コードの問題点として、レスポンスが帰ってこないことがあります。詳細な情報が必要です。
- この質問にはPHPの正規表現を使用してHTMLタグの内容を抽出する方法が求められています。
- みんなの回答 (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]; ?>
お礼
ありがとうございます、以下のコードで試しましたところ、成功しました。 <?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つだけですもんね。