• ベストアンサー

Javascriptで表示のページをPHPで読む

Javascriptを使って表示されているウェブのコンテンツをPHPで読み込む方法について教えてください。 HTMLで作られている場合は「file_get_contents」でHTMLソースを取得できますが、Javascriptを使って表示されたページのソースを読み込むにはどのようにしたらよいのでしょうか。 読み込みたいページは下記のような構造になっています。 <html> <head> </head> <body> <h2>タイトル</h2> //ここのコンテンツ部分がJavascriptをONにしないと見えない。 </body> </html>

  • PHP
  • 回答数1
  • ありがとう数0

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

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

単純なdocument.writeレベルのものであれば独自に解釈すれば よいかと思いますが、DOMやCOOKIEやAJAXなど高度になってくると トレースするのはかなりきびしくなってきます。 ひとつはそもそもscriptを理解できないならnoscriptの ところだけ反映するのが妥当な処理です。 どうしてもjavascript反映後のソースがほしいなら (1)自前で解釈するか(2)そういったライブラリを探してきて利用する のどちらかでしょう。

関連するQ&A

  • javascriptを起動した後のウェブページを取得するには

    こんにちは。よろしくお願いいたします。 以下のようなHTMLソースをブラウザで読み込むとhogeと 表示されますが、PHPのfile_get_contentsやPerlのLWPなどを使って ページを取得するとソースそのものが取得されます。PHPやPerlを使って ブラウザから見たソース(以下の例ではhoge)を取得するには どのようにしたらよいのでしょうか? <script type="text/javascript"> window.onload=function (){ document.getElementById("a").innerHTML="hoge"; } </script> <div id="a"></div>

    • ベストアンサー
    • PHP
  • PHPからjavascriptへの変数の受け渡し

    javascriptからPHPを経由して他のサイトのページソースを文字列の変数として取得することを考えています。今回はそれに先立ちとりあえずページソースを取得表示するプログラムを作ってみました。 環境はローカルサーバー内の同じフォルダに以下の二つのファイルを作成しました。 ↓display_XML.html ---------------------------------------- <script language="JavaScript"> var request=new XMLHttpRequest(); request.open("GET","get_XML.php",false); request.send(null); </script> ---------------------------------------- ↓get_XML.php ---------------------------------------- <?php $context = (省略) $res = urldecode(file_get_contents('http://(省略)',false,$context)); echo $res; ?> ---------------------------------------- この状態でdisplay_XML.htmlにアクセスしても何も表示されませんでした。もしかしてゲットに対するレスポンスとして何か帰ってきているかと思いrequest.responseTextの中を見てみましたが、get_XML.phpがそのまま入っているだけでした。ちなみに直接get_XML.phpにアクセスした場合はちゃんとページソースを表示してくれます。 また、今回webアプリの作成は初めてなのでなるべくすでに用意されたライブラリの使用は避けたいと考えています。どうかよろしくお願いします。 また、冒頭でも書いたように、最終的にはjavascript内に文字列として取り込むことを考えています。 その場合はget_XML.phpの最後のコードを echo 'var a='.$res.';' のように記述することで実現できますでしょうか?もしくは他にふさわしい方法がありますでしょうか?合わせてご回答いただけると幸いです。

    • ベストアンサー
    • PHP
  • JavaScriptからPHP呼び出しHTML出力で…

    現在phpにてブログのカテゴリリストを取得して、投稿ページ (HTML)上にカテゴリのプルダウンを表示しようと試みている のですが、JS(JavaScript)からPHPを呼び出しHTML上に出力する 際にPHPファイルにincludeがあるとjavascriptエラーとなって しまいます。 ちなみに参考にしたホームページはこちらです。 http://www.res-system.com/item/383 PHPソース(init.php)↓ <?php include_once('entry.php'); // ←エラーの箇所 // ヘッダ header("Content-Type: application/x-javascript; charset=UTF-8"); // インスタンス生成 $obj = new XMLComm(); // 初期設定 $obj->XMLComm(); // カテゴリ取得 echo "document.write(\"$obj->getCategories()\")"; ?> HTMLソース(entry.html)↓ <HTML> <HEAD> <TITLE>BLOG ENTRY</TITLE> </HEAD> <BODY> ブログエントリー</br> <script type="text/javascript" src="/init.php"></script> </BODY> </HTML> ちなみに、include等が無い状態で任意の文字で試したのですが こちらはきちんと表示されます。 javascriptでincludeなど呼び出しているphpを起動することは できないのでしょうか… 解決策、別案などありましたらご教授いただけたら幸いです。 phpを始めたばかりの初心者で、質問自体おかしい点があるかも しれませんが、、どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • [HTML+JavaScript+php]htmlにphpの結果を表示したい。

    こんばんは。 いま、簡単な動的なウェブページを作っています。 htmlファイルにJavaScriptで動的にphpの結果を表示できるような処理をしたいのですが・・・どのようにすれば可能か、、、参考文献が見つかりません。 ・・・色々調べたのですが。 どういうことがしたいかといいますと、htmlはphpなどにせず、htmlのままにしておきたいと思っています。 そのhtmlの<BOBY></BODY>内の一部にJavaScriptを使って、 document.write("最終更新:",document.lastModified); 時間を表示したりしています。 このような方法で、<BODY></BODY>内にphpの実行結果を表示させたいと考えています。 その場合、html側にはどのような記述を、またphpですべきことはあるのか、、、を調べています。 分かられる方・・・お教え下さい。 また、参考になりそうなページの紹介でも結構です。 何卒、宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • フレームページに文字が表示されなくて困ってます><

    フレームページに文字が表示されなくて困ってます>< フレームページは表示されるのですがmenu.html.htmlやcontents.html.htmlに書いた文字が表示されません どこが間違っているのでしょうか? ーーフレームページーー <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE>タトル</TITLE> </HEAD> <FRAMESET cols="100,*"> <FRAME name="menu.html.html" src="file:///D:/happystyle/menu.html.html"> <FRAME name="contents.html.html" src="file:///D:/happystyle/contents.html.html"> <NOFRAMES> <BODY> <P>このページを表示するには、フレームをサポートしているブラウザが必要です。</P> </BODY> </NOFRAMES> </FRAMESET> </HTML> ーーmenu.html.htmlーー <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE>タイトル</TITLE> </HEAD> <BODY> 画像置き場 </BODY> </HTML> ーーcontents.html.htmlーー <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE>タイトル</TITLE> </HEAD> <BODY> 画像表示 </BODY> </HTML> というHTMLを書きました! フレームに表示させたいページのHTMLはフレームと同じフォルダに入っているのですがこれと関係ありますか? どこがおかしいのかまったくわからないです 教えてください!

  • javascriptのPHP化について

    宜しくお願い致します。 javascriptの外部ファイルをPHP化して、サーバサイドで動的に生成した内容を吐き出し、それをHTML側でjavascriptの外部ファイルとして受け取って処理しております。 この場合のブラウザがアクセスした際に処理される順番は・・・ (1)HTMLの読み込み開始 (2)header内のjavascript外部ファイルの読み込みと実行 (3)HTMLファイルのbody以下を読み込み (4)結果をブラウザに返して表示 という流れになるはずです。 この場合、(2)のjavascript外部ファイルの方がbodyより先に実行されるはずです。 しかし、javascript外部ファイル内のPHPでセッションデータを扱っている場合、(3)のbody内でPHPでセッションを定義した内容が、なぜか(2)のjavascript外部ファイルで反映されて実行されるのです。 私のイメージでは・・・ (1)HTMLの読み込み開始 (2)header内のjavascript外部ファイルの読み込みと実行  ※この時セッションは反映しない (3)HTMLファイルのbody以下を読み込み  ※この時にセッションを入れても(2)が既に実行さられているので反映しない (4)結果をブラウザに返して表示  ※結果、セッションにデータが入っておらず、php側でエラーを吐き出しjavascriptが止まる という様になるかと思ってましたが、なぜか実行されます。 javascriptはHTMLが全部読み込まれてから実行されるのでしょうか?

  • Javascript から PHP を呼び出したい

    お世話になります。 html 内の Javascript から PHP を呼び出して表示したいと思っています。 ローカル環境で試したところ表示されたのですが、借りている lolipop のサーバへアップしてみたところ表示されませんでした。 何か固有の設定や根本的に間違っている!などありましたらご教示いただけないでしょうか。 以下、試した内容です。 test.html を実行し a.php を呼び出して表示したいです。 ローカルでは test.html を読み込むと [aaa] と表示されたのですが・・・。 [test.html] <html> <head></head> <body> <script type="text/javascript" src="http://example.com/a.php"></script> </body> </html> [a.php] <?php header("Content-type: application/x-javascript; charset=UTF-8"); echo "document.write(\"aaa\")"; ?>

    • 締切済み
    • PHP
  • HTMLとJAVASCRIPT

    パソコンほぼ初心者なのですがHTMLとPHPとJAVASCRIPTを用いて軽いシステムを構築しています。 そこで一つ質問があります。 ---------------------- <html> <head> </head> <body> 表示させたいテキストボックスンの数は <input type=text> 個です。 </body> </html> --------------------------------- 上記のソースなんですが、テキストボックスに数字を入れて、その数だけテキストボックスを表示させたいのですが、どのようにすれば良いでしょうか? ブラウザはIE7です。

  • 問題部分がJavascriptかPHPか分かりませんが....

    以下のようなHTMLを記述しました。 私の希望するべき動作は、"click"ボタンを押すたびに時間表記が切り替わると言うものです。 条件として、時間の取得はphp側で行う。 ページのリロード,リダイレクトなどは行わない main.HTML <head> <script type="text/javascript" id="test" src="./time1.php"></script> <script Language="JavaScript"><!-- cnt = 0; function click_key(){ if(cnt == 0){ test.src = "./time3.php"; cnt = 1; }else{ test.src = "./time1.php"; cnt = 0; } document.smp.set_val.value = get_time(); } // --></script> </head> <body> <form name=smp> <input type=text name=set_val value="" size=50><br> <input type=button value=click onclick="click_key()"> </form> </body> testX.php function get_time(){ value_time = "<? echo date("H:i:s"); ?>";   中略 return value_time; } test1.php test3.php にはそれぞれ上記のget_time()を含むコード記述がされています。 現状では、表示自体は切り替わりますがtest1.phpとtest3.phpが最初に読み込まれる時のみ動作するだけで、 以降は時間が更新されません。(テンポラリに残っていてそれが表示されている感じ?) これをリアルに動作できる方法はあるのでしょうか? それとも、こんな条件では実現不可能?

    • 締切済み
    • PHP
  • HTML→PHPへ値を渡して再びHTMLに結果出力

    HTMLからPHPへ値を渡して、再びHTMLに結果を表示したいと思っています。 以下のような簡単なコードを書いてみましたが、HTMLのページに"OK"という文字が表示されません。 PHPのパーミッションは755でやっており、PHPが動作するサーバーでテストしています。 どう修正すれば良いのか、アドバイスをお願い頂けますでしょうか? どうぞよろしくお願い致します。 【HTML】 <html> <head> </head> <body> </body> <script type="text/javascript" src="http://xxx.com/test/jsphptest.php?param=1"></script> </html> 【PHP】 <?php $param = $_GET['param']; header("Content-type: application/x-javascript"); if ($param == '1') { echo "document.write(\"OK\")"; } else { echo "document.write(\"NG\")"; } ?>

    • ベストアンサー
    • PHP

専門家に質問してみよう