• ビジネス
  • IT
  • テクノロジー
  • 医療
  • 建設・不動産
  • TRENDY
  • WOMAN
  • ショッピング
  • 転職
  • ナショジオ
  • 日経電子版
  • 日経BP
  • PR

  • PR

  • PR

  • PR

  • PR

PHP TIPS

12. JavaScriptをPHPで記述しよう

2007/02/22 ITpro

JavaScriptを使用したスクリプトを記述していて、条件による分岐を いちいち記述していくのが面倒だなーと思ったことはないでしょうか。 そんなときにちょっぴり役に立つ技を紹介したいと思います。

それは読み込むJavaScriptファイルをPHPで記述してしまう方法です。 これを使えば、面倒なJavaScriptもPHPスクリプトで動的に変化させる ことができるようになります。

たとえば、test.phpでJavaScriptを生成するには以下のようになります。

テンプレート内

<script type="text/javascript"src="test.php?flag=1"></script>
<script type="text/javascript">
a();
</script>

test.php内

<?php
echo "function a() {";
if (
$_GET["flag"]) {
  echo 
"alert('aaa');";
} else {
  echo 
"alert('bbb');";
}
echo 
"}";
?>

さらに、PHPでJavaScriptを記述すると、以下のような方法でJavaScript ファイル内(ここではtest.php内)から他のJavaScriptファイルをインク ルードして、読み込んだ関数を使用することもできるようになります。

test.php内

<?php
// readfileで test()関数を定義したJavaScriptファイルをインクルード
readfile("another_script.js");
?>
// ここからはJavaScript構文を記述
test();

JavaScriptのインクルードは、JavaScriptのcreateElementで<script>タグを 生成する方法でも可能ですが、PHPでreadfileを使うほうが処理が早くなります。

また、これらの技はSmartyなどのテンプレートエンジンを利用すると、さらに 使いやすくなります。以下はデリミタを"{{"と"}}"に設定した例です。

function a() {
{{if $is_hogehoge}}
  alert('aaa');
{{else}}
  alert('bbb');
{{/if}}
}

PHPとJavaScriptを絡めた処理を記述する場合などにとても便利なのでぜひ お試しください。


(アシアル 松田惇)


この記事は、アシアルが運営するPHP開発者のためのポータル&コミュニティサイト「PHPプロ!」で毎週配信しているPHP・TIPSメーリングリストを再録したものです。
同サイトでは、他にもPHP最新ニュースや、困ったときのQ&A掲示板、初心者向けのPHP講座など、PHP開発者をサポートする情報を掲載しています。

あなたにお薦め

連載新着

連載目次を見る

今のおすすめ記事

  • 【IoTラクラク実践術】

    まずは最も身近なトイレをIoT化してみよう

     IoTの本格導入を阻む1つめの「IoTの効果や使い方が、まだよく分からない」という壁を乗り越えたいITエンジニアにお勧めなのが、まず自分にとって、そして誰にとっても身近なモノをIoT化してみることだ。その代表例として今、IoT化が進んでいるのがトイレだ。

ITpro SPECIALPR

What’s New!

経営

アプリケーション/DB/ミドルウエア

クラウド

運用管理

設計/開発

クライアント/OA機器

ネットワーク/通信サービス

セキュリティ

もっと見る