motooLogue

Icon

「どうせアタシなんかよりも○○○○の方が大切なんでしょ……」の○○○○を探してやまないアル中のブログ。

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

最近の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 = '<img src="hoge.jpg">';
$js->documentWrite($lines);
$lines = "Welcome to MOTOO's HOME page!!";
$js->documentWrite($lines);
?>

ってな感じっすか。

Category: PHP

Tagged: ,

SimilarPosts:

Leave a Reply

Ad

TranslateThis