- 2008年3月16日 23:33
最近のmotooさんのPHPプログラミングの手法として、ちょいとしたPHPの出力は、Javascriptとして出力することが多いんです。
たとえば企業サイトの新着情報。デザイナーさんにデザインをお願いして、上がってくるHTMLファイル。80%はHTMLという拡張子が着いて納品されます。で、もれなく他のページからのリンクもindex.htmlへリンクされているわけです。
「index.html→index.phpに変更してくんない?」
なんてお願いするのも面倒なんで、新着情報の数行の部分だけ外部Javascriptとして読み込むようにして、実際のそのJavascriptはPHPでコーディングするわけです。
ちまたでは、ブログパーツの配布方法としてよく使われているもんだと思ってたんですが、最近ウチの会社に入ってきたSプログラマーから、「motooさん、コレ便利っすねー」と言われたもんだから、調子に乗って、クラス化してみました。
javaScript.php
<?php
class javaScript{
// メンバ変数設定
var $output_header = false;
// コンストラクタ
function javaScript (){
$this->printHeader ();
}
// コネクションハンドルを返す
function printHeader (){
if($this->output_header == false){
header ("Content-type: text/javascript");
$this->output_header = true;
}
}
// document.writeの書き出し
function documentWrite ($contents = "") {
$this->printHeader ();
//無理やり配列化!
if (!is_array ($contents)) $contents = array ($contents);
foreach ($contents as $line) {
//クォートにスラッシュ追加
$line = str_replace ("'", "\'", $line);
$line = str_replace ('"', '\"', $line);
//改行削除
$line = ereg_replace ("\n|\r|\r\n", "", $line);
print ("document.write('{$line}');\n");
}
return true;
}
}
?>
で、実際に使う場合には
<?
require_once "javaScript.php";
// Javascript作成
$js = new javaScript;
$lines = array ("abc", "123", "あいうえお");
$js->documentWrite($lines);
$lines = '
';
$js->documentWrite($lines);
$lines = "Welcome to MOTOO's HOME page!!";
$js->documentWrite($lines);
?>
ってな感じっすか。
- Newer: 死神の精度
- Older: 旅の途中で東京Xしゃぶしゃぶ。

