javascriptでPHPファイルを実行してそれを出力する方法
javascriptでPHPファイルを実行して、その内容を出力する方法をまとめています。
PHPが使えない環境のサイトに動的なコンテンツを出力させたり、javascriptでは取得できないIPアドレスを渡したりできるようになります。
PHPファイルの読み込み
通常、スクリプトファイルを読み込む際
<script type="text/javascript" src="http://○○○.com/△△△.js"></script>
のようにjsファイルをsrc属性に指定しますが、下記のようにPHPファイルも指定できます。
<script type="text/javascript" src="http://○○○.com/△△△.php"></script>
すなわち、PHPファイルを内部サーバーもしくは外部サーバーに用意し、上のようにPHPファイルを呼び込んであげるだけでPHPが実行され、その内容が出力されるわけです。
javascriptでPHPファイルを実行
例として、無料ブログなどのPHPが使えない環境にあるサイトに、アクセスしてきたユーザーのIPアドレスを出力させる方法を紹介します。
まず、PHPが実行できるサーバーに以下を記述したファイルを設置します(ファイルのURLは(http://○○○.com/△△△.phpとする)。
<?php //javascriptファイルとして処理させる header("Content-type: application/x-javascript"); //IPアドレスを変数に代入 $ip_address = $_SERVER['REMOTE_ADDR']; //スクリプトの出力 echo "document.write('" . $ip_address . "');"; ?>
☆ヘッダーの指定
ヘッダーにコンテンツタイプ「application/x-javascript」を指定し、PHPが出力した内容がjavascriptファイルであることを明示します(なくても私の環境ではコンテンツは出力されました)。
☆javascriptで出力
PHPで出力したあとはjavascriptファイルとして扱うので「document.write」などで出力しなければページ上に表示されません。
そして、無料ブログのサイトに以下のコードを設置します。
<script type="text/javascript" src="http://○○○.com/△△△.php"></script>
すると
111.111.111.111
のようにIPアドレスが出力されます。
javascript→javascriptファイル→PHPファイルを呼び出す
javascriptでjavascriptファイルを呼び出し、さらにPHPファイルを呼び出すことも可能です。
この場合、javascriptファイル(http://○○○.com/□□□.js)に以下の記述をします。
document.write('<script type="text/javascript" src="http://○○○.com/△△△.php"></script>');
そしてPHPが出力した内容を表示させたい場所に、以下のコードを設置します。
<script type="text/javascript" src="http://○○○.com/□□□.js"></script>
かなり面倒で使用どころがあまりないですが、よくGoogleAnalyticsのコードやその他のツールで「このjavascriptのコードを貼ってください」とありますが、実はそのコード中にあるjsファイルの中身にはこうした外部サーバーのPHPファイルなどがあり、アクセスしてきたユーザーの情報を取得したりゴニョゴニョ分析したりしています。
あわせて読んでほしい!
コメント
まだコメントはありません。