[PHP-users 2384] PHPでカスタムタグ

naoki kishida php-users@php.gr.jp
Tue, 02 Oct 2001 08:39:17 +0900


--VHVlLCAwMiBPY3QgMjAwMSAwODozOToxNyArMDkwMA==
Content-Type: text/plain; charset=ISO-2022-JP

きしだです
というわけで、PHPでカスタムタグを実装してみました。
ほぼ、Javaと同じ方法です。
クラスのインターフェイスは同じ感じにしています。TagSupportとか。

一晩でできちゃったにしては、すごくいい感じです。
もちろん、まじめにパースしてないので、属性の中に=やスペースや>があるとだ
めです。?>だけはなんとなくごまかしてますが。
エラー処理も、まったく考えていません。

ファイルはこんな感じです。PHP4の動く、同じフォルダに展開してsample.phpを
見れば動きがわかるとおもいます。


customtag.inc カスタムタグのエンジン
taglib.inc    とりあえずのタグライブラリ
sample.php    サンプルプログラム
template.html サンプルのテンプレート


かなり単純に実装できてしまったので、ほかにも作ってる人がいそうですね。
こういうの、ちゃんとあれば、PHPはPHPでお手軽でいいですね。

----
岸田 哉生(きしだ なおき)
	email:kishida@fk.urban.ne.jp
	http://www.fk.urban.ne.jp/home/kishida/



--VHVlLCAwMiBPY3QgMjAwMSAwODozOToxNyArMDkwMA==
Content-Type: application/octet-stream; name="tagtest.lzh"
Content-Disposition: attachment;
 filename="tagtest.lzh"
Content-Transfer-Encoding: base64

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
pARCV/nGKyvX/ossv1eAAA==

--VHVlLCAwMiBPY3QgMjAwMSAwODozOToxNyArMDkwMA==--