<< RSSフィードのキーワード検索 | main | PEAR:Cache_Liteでキャッシュ管理 >>

2007.02.24 Saturday

JavascriptとPHPの連携

PHPが使えないサーバー(例えば、無料ブログや無料HP)でPHPを使いたい場合、
Javascript経由でPHPを呼び出すことになります。

もちろん、PHPが動作するサーバーは別に持っていることが必要なのは、言うまでもありません。
なので、あまり需要がないかな?という気もするのですが、
自分の場合、メインブログがLOVELOGなので、個人的には利用価値あり、ということで。

ここでは、その一例をご紹介。

--

まず、PHPをJavascriptで呼び出す場合は、普通にprintやechoを使っても、呼び出し元には何も表示されません。
呼び出し元は、Javascriptなわけですから、PHPでも、Javascriptから呼ばれていることを意識して、文字を出力する必要があります。

結論だけ先に言うと、
document.writeで括ってあげればOKです。

PHPのソース
<?php

if(isset($_GET['str_in'])) {
	$str_in = $_GET['str_in'];
}
if(isset($_GET['charcode'])) {
	$charcode = $_GET['charcode'];
}

$str = mb_convert_encoding($str_in,$charcode);
$str = "document.write('$str');\n";

echo "$str";

?>
mb_convert_encodingは呼び出し元の文字コードで出力するためにコード変換しています。 呼び出し元のJavascriptコードは、以下のようになります。
<script language="JavaScript" src="filename.php?str_in=%E5%8D%92%E6%A5%AD&charcode=SJIS" type="text/javascript"></script>
str_inには、PHPの保存コードでエンコードした文字列(ここでは、UTF-8でエンコードした「卒業」という文字を指定しています。) charcodeには、呼び出し元のページの文字コード種別を指定します。 一般的には、SJIS、EUC-JP、UTF-8のどれかを指定することになるかと思います。

これだけで、PHPに対応していないサーバーでもPHPが使えるようになります。
もちろん、Javascriptで取得したデータも渡せるので、基本的には何でも出来ます。

場合によっては、単にiframeのほうがよい場合もあるので、使い分けが難しいところです。

--

テクノラティお気に入りに追加する

Comments

コメント入力は停止しています

海外からと思われるコメントスパムが横行しているため、全記事のコメント入力を停止しています。メッセージのある方は、ホームページの一番下に連絡欄がありますので、そちらからお願いします。

Trackback URL

トラックバックする場合は、
トラックバック元の記事にこのエントリへのリンクを記載してください
このエントリのタイトル「JavascriptとPHPの連携」
このエントリのリンク「http://kommy.s254.xrea.com/blog/log/eid17.html」