Kozupon.com    
 
 PHP4にDOMを実装する!


さてっと、DOMとはいったいなにか?

DOM(Document Object Model)は文書オブジェクトモデルである。と言われてもいささか理解に苦しむであろう(笑)。早い話、HTMLやXML文書のためのAPI(Application Program Interface)である。これは、文書における論理的構造や、文書へのアクセスや操作の方法を定義するものである。DOMにおいては「ドキュメント」という用語で広域に使われる。現在、XMLは異なるデータを表現する表現方法として使われており、様々なDBシステムに利用されている。このように、XMLは文書と言うよりDBシステム等に蓄積するデータとして処理されるのである。したがって、XMLの良さはここに有るとも言える。

DOMを使って何が出来るか?というと文書をプログラムにより構築し、その構造を操作しエレメントや内容を追加、修正、削除と言うような操作を行うことができる。HTMLやXMLの各文書中で使われる物は全てDOMを使ってアクセスすることができるが、しかし例外もあるので注意が必要!と言うのも、XML内部や外部サブセット用のDOMインターフェースが仕様になっていないからである。 

今までDOMのセットアップが成功したOS:
FreeBSD4.6R
Laser5LinuxSecureServer6.9
VineLinux2.5
Laser5Linux7.2exp
Nature'sLinux


1.DOMのセットアップ

■コンパイルの準備

DOMはlibxmlをインストールして、PHPにオプションパラメーターを指定して再コンパイルすれば使えるようになる。
ソースは、 ここ  から入手する。ソースは現時点(2002年12月1日)では、libxml2-2.4.28.tar.gzが最新であったのでこのソースに対しての説明を進める。例えば、/usr/local/srcにソースを展開する。
重要:セットアップされるOSには、あらかじめGTKがインストールされてる必要が有る。

■コンパイル

# cd /usr/local/src

# tar -zxvf libxml2-2.4.28.tar.gz

# chown -R root.root libxml2-2.4.28

# cd libxml2-2.4.28

# ./configure

# make install


2.PHP4コンパイル

■コンパイルの準備

PHP4のソースは言わずと知れた ここ でダウンロードする。現在(2002年12月1日)では、php-4.3.0RC2が最新であったがphp-4.3.0以降からDOMのAPIが大幅に変わっているらしい(謎)。したがって、php-4.3.0は避けて今回はphp-4.1.2のソースで説明させてもらうこととする。しかし、セットアップ方法は変わらないので参考になるかと思うのでご安心を!

前提条件:
PostgreSQLを使うこととする。グラフィックライブラリは使わない。
zlibを入れておくこと。インストール方法は、
 ここ

■コンパイル

# cd /usr/local/src

# tar -zxvf php-4.1.2.tar.gz

# chown -R root.root php-4.1.2

# cd php-4.1.2

config.shというファイルを作り、configureパラメータを以下の内容で記述する。シェルにしてしまってconfigureのパラメータをリコンパイル用に追記編集できるようにしておく。これをしておかないと何かと不便だ!

# vi config.sh

#!/bin/sh
./configure --enable-track-vars --with-apxs=/usr/local/apache/bin/apxs --enable-trans-sid \
> --enable-mbstring --enable-mbstr-enc-trans --without-mysql --with-dom --with-xml \
> --with-zlib --with-pgsql

注: Nature'sLinuxの場合は、多分zlib.hが見つからないと思うので上記に --with-zlib-dir=/usr/include を追加する。

# chmod 755 config.sh

# ./config.sh

# make

# make install

エラーがなければ、コンパイル成功!

■httpd.confの編集

apacheのhttpd.confを編集する。

# cd /usr/local/apache/conf

# vi httpd.conf
省略
AddType application/x-tar .tgz
AddType image/x-icon .ico

AddType application/x-httpd-php .php .php3
AddType application/x-httpd-php-source .phps .php3s

省略

濃い青色の部分を追加する。

■php.iniを作る

# cp php.ini-dist /usr/local/lib/php.ini

■ld.so.confの編集(Linuxのみ!)

ld.so.confの最後に以下のパスを追加する。

# vi /etc/ld.so.conf

省略
/usr/local/lib

編集が終わったら、以下を実行

# ldconfig

■Apacheの再起動

# /usr/local/apache/bin/apachectl restart

■DOMの動作テスト

DOMが旨く動いてるかサンプルプログラムを作成してテストする。apacheのドキュメントルートに、以下のようなPHPファイルを作成してブラウザでブラウズしてみる。但し、php-4.3.0以降についてはAPIが違うので多分エラーが出ると思う。

# cd /usr/local/apache/htdocs

# vi test.php
<?php
$doc = new_xmldoc("1.0");
$root = $doc->add_root("HTML");
$head = $root->new_child("HEAD", "");
$head->new_child("TITLE", "TEST");
$head->new_child("BODY", "TEST Program");
echo $doc->dumpmem();
?>

さらに、これをブラウザでブラウズすると、

TEST Program

な文字を表示する。また、これをHTMLソース表示させると、

<?xml version="1.0"?>
<HTML>
<HEAD>
<TITLE>TEST</TITLE>
<BODY>TEST Program</BODY>
</HEAD>
</HTML>

このようなHTMLをPHPが出力しているはずである。ここまで旨くいけば、以上で終了。

以上


 
 
 



Copyright 2005 Kozupon.com.