PHP Simple HTML DOM Parser

Posted by joeartsea on 2009-01-29

PHPでの開発において(PHPに限った話でもないですが)テンプレートエンジンを利用したプログラマとデザイナの協業はこれまでもありましたが、結局のところデザイナに多少のプログラミングスキルが必要とされていました。

しかし、PHPで簡単にDOMを扱えればデザイナは単にHTMLファイルをオーサリングソフトで作ればいいだけになるんじゃなかろうか?ということで探したらPHP Simple HTML DOM Parserというのを見つけました。ちょっと試してみます。

phpdomparser_test.html

1
2
3
4
5
6
7
8
<html>
<head>
<title>改竄テスト</title>
</head>
<body>
<p id="test">まだ改竄されていません</p>
</body>
</html>

次にDOMにアクセスしてHTMLを書き換えるPHPスクリプトを作ります。idがtestのpタグのテキスト"まだ改竄されていません"を"改竄されました"に書き換えるという意味です。ダウンロードしたライブラリファイル"simple_html_dom.php"と書き換えられる側のHTML"phpdomparser_test.html"はこのPHPファイルと同じ階層に置きます。

simple_html_dom.php

1
2
3
4
5
6
<?php
include('simple_html_dom.php');
$dom = file_get_dom('phpdomparser_test.html');
$dom->find('p[id=test]', 0)->innertext = '改竄されました';
echo $dom;
?>

あとは分岐や制御の表現を整備すればDOMベースのテンプレートエンジンができますね。Javaでいうとmayaaに近い感じですかね。個人的には非常に便利だと思ってます…と思ってたら既にありました。Runemasterというらしいです。よっしゃ活用させてもらいます!

でも分岐や制御をHTMLちっくに書けてもプログラマ的な思考は多少必要だから一緒か…