- ベストアンサー
HTMLをPHPでJSONにして返すには
- jqueryを使用してurlのhtmlファイルからtitleタグやh1タグの内容を抽出し、連想配列に格納する方法が分かりません。
- 上記のコードでは、test.phpからは[object Object]というレスポンスが返ってきてしまいます。
- HTMLをPHPでJSON形式に変換して返すためにはどのような修正が必要でしょうか。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
どうぞ <html> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> function site_check(){ var url = $("#url").val(); if(url=="") return; $.getJSON( "test.php", { url: encodeURIComponent(url) }, function( data, status ) { $("#title").html( data.title[0] ); $("#h1").html( data.h1[0] ); }); } </script> </head> <body> <div class="form"> URL <input type="text" id="url" value="" style="width:300px;" onfocus="this.select()" onkeypress="if(event.keyCode==13) site_check()" /> <button onclick="site_check()" />チェック</button> </div> title:<span id="title">aaa</span></br> h1:<span id="h1"></span> </body> </html> <?php ini_set( 'display_errors', 0 ); $html = file_get_contents( urldecode($_GET['url'] ) ); $html = mb_convert_encoding( $html, 'UTF-8', 'auto' ); $array = array(); $pattern = "/(?<=<title>).+?(?=<\/title>)/mis"; preg_match($pattern,$html,$array['title']); $pattern = "/(?<=<h1>).+?(?=<\/h1>)/mis"; preg_match($pattern,$html,$array['h1']); header("Content-Type: application/json; charset=UTF-8"); echo json_encode($array);
お礼
ありがとうございました。phpでデコードして、jqueryでは data.title[0]のようにアクセスするんですね。。。本当に助かりました。