JavaScript Function Call

PHP から JavaScript の関数を呼び出します。
PHP と JavaScript のデバッグ機能を組み込んでいます。
js_func.php を呼び出すコードです。
<a href="http://maedakobe.rw.xsi.jp/php/js_func.php?d1=32&d2=24">GCM の計算</a>

次のリンクをクリックするとサーバーの PHP が実行されます。
GCM の計算

プログラムの説明

  1. "js_func.php" の全ソースコードです。
    utf-8(BOM 有り)でタイプして、サーバーにアップロードして下さい。
    <html>
    <head>
    <meta charset=utf-8>
    <script type="text/javascript">
    function gcm(d1, d2)
    {   document.write(d1, " : ", d2, "<br>");
        while(d1!=d2)
        {   if (d1>d2)  d1 = d1 - d2;
            else        d2 = d2 - d1;
        }
        document.write("GCM : ", d1, "<br>");
        window.alert("GCM : " + d1);
    }
    </script>
    </head>
    
    <body>
    <?php
        $d1= $_GET["d1"];
        $d2= $_GET["d2"];
        error_log("php が呼ばれました  $d1 : $d2\n", 3, 'app.log');
        print("<script type='text/javascript'>\n");
        print("gcm($d1, $d2)");
        print("</script>\n");
    ?>
    </body>
    </html>
    
  2. PHP で GET パラメータを受け取って JavaScript の関数を呼び出します。
    PHP はサーバーサイドで動くのに対して JavaScript はクライアントサイドで動作します。
    従って、サーバーサイドで実行された PHP の結果がクライアントサイドに渡されて JavaScript が実行されます。
  3. JavaScript の gcm() 関数では d1, d2 の最大公約数を計算して印字しています。
    最大公約数の説明は Gcm Lcm の説明 を参照して下さい。
  4. PHP では GET パラメータでわたされた d1, d2 を受け取って、これを引数にして gcm() 関数を呼び出します。
  5. JavaScript では window.alert() 使ってみました。
    「GCMの計算」をクリックすると window.alert() で「GCM : 8」が知らされます。
  6. PHP では error_log() が威力を発揮します。
    サーバーの php\ のフォルダーを調べると 'app.log' が格納されています。
    このファイルをエディッタなどで確認してみて下さい。
    php が呼ばれました  32 : 24
    
    がファイルの最後に記録されています。
  7. 'app.log' はサーバーのカレントディレクトリに格納されています。
    app.log Print をクリックするとサーバーの app.log が印字されます。
    クリアされることは無く、追加モードで TEXT が記録されます。
    適当なタイミングでテキストを削除して下さい。(ファイルを削除してもOKです)

ビルトインサーバーを使う

  1. MY Page-1 でビルトインサーバーを使って同じプログラムを使ってデバッグの方法を説明しています。
  2. コマンドプロンプトを起動して phpbat.bat を実行します。
    ブラウザを起動して http://localhost:8000 をURLに貼り付けると index.html が実行されます。
  3. 「GCM(32,24) を求める」をクリックすると window.alert() で「GCM : 8」が知らされます。
  4. C:\HTML\PUBLIC\PHP\ のフォルダーを調べると 'app.log' が格納されています。
    このファイルをエディッター(メモ帳など)で確認してみて下さい。
    php が呼ばれました  32 : 24
    
    がファイルの最後に記録されています。
  5. 'app.log' はクリアされること無く、TEXT が追加で記録されて行きます。
    そのままにしておくと、どんどんファイルが膨れ上がります。
    適当なタイミングで C:\HTML\PUBLIC\PHP\app.log のテキストを整理して下さい。(ファイルを削除してもOKです)

前田稔の超初心者のプログラム入門
PHP Program