Home > PHPの出力を、Javascriptのdocument.writeで書き出すクラス。

PHPの出力を、Javascriptのdocument.writeで書き出すクラス。

  • Posted by: モトヲ
  • 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);
 
?>

ってな感じっすか。



Comments:0

Comment Form

Trackbacks:0

TrackBack URL for this entry
http://blog.motoo.net/mt-tb.cgi/776
Listed below are links to weblogs that reference
PHPの出力を、Javascriptのdocument.writeで書き出すクラス。 from motooLogue

Home > PHPの出力を、Javascriptのdocument.writeで書き出すクラス。

Search
Advertisement
BlogParts
Feeds
CC Licence

Creative Commons License

このブログはクリエイティブ・コモンズでライセンスされています。

Return to page top