ラベル PHP の投稿を表示しています。 すべての投稿を表示
ラベル PHP の投稿を表示しています。 すべての投稿を表示

2007年10月8日月曜日

PHPの失敗談:UTF-8

PHPのプログラムを作成するとき、同じ間違いを犯す人は多いようだ。
ここでは、私の失敗談を披露しよう。
PHPのプログラムはエディタさえあれば作成できる。
最近のWebアプリケーションはUTF-8を標準にしていることが多いので、UTF-8で保存できるエディタを使う。
私の場合は、TeraPadを愛用している。しかし、十分に使いこなしていないことがわかった。
TeraPadにはUTF-8とUTF-8Nの2種類の文字コードがある。
最初は、余計なNの付いていない文字コードで保存していたが、PHPのセッションがまったく働かなかった。
少し細かく説明すると、PHPでは以下のような行を先頭に書いてセッション管理する。

ところが、先頭に書いてあるにもかかわらず、エラーとなる。
その理由はUTF-8がBOM(Byte Order Mark)という目に見えない制御文字をファイルの先頭に負荷していたからだ。一方、UTF-8NはBOMを出力しない。
そこで、ファイルの文字コードをUTF-8Nに変更したら、あっさり動作した。これで、結構時間をつぶしてしまった。
この失敗談が他の人の役に立つとよいのだが。

PHPを始めるには

PHPはサーバサイドで実行するスクリプトだ。
PHPでプログラムを書くには、当然サーバが必要になる。
WindowsでPHPを試すならXAMPPを推奨する。
XAMPPはApache+MySQL+PHPのオールインワン・パッケージだ。
最近では、メールサーバ(Mercury)やFTPサーバ(FileZila)まで付いている。
標準で、PHPが使えるように設定されているので、XAMPPをダウンロードしてインストールするだけでよい。

2007年7月26日木曜日

PHP5をApache2.2/Windowsへインストールする

PHP5をApache2.2/Windowsへインストールしたときのメモ
PHP5をhttp://jp.php.net/からWindows Binariesのzip packageダウンロードする
PHP5をc:\phpへ展開
PHP5のphp5apache2.dllは正しく動作しないため、php5apache2.dll-php5.1.x.zipが必要
http://www.apachelounge.com/download/からダウンロードし、展開する
php5apache2.dllをc:\phpへコピーする
httpd.exe.manifestをapache2/binへコピーする
Visual C++ 2005 Redistributable Packageをインストールする
  http://www.microsoft.com/downloads/details.aspx?familyid=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&displaylang=enからダウンロードし、インストール
c:\phpをPATHに設定する
あるいはphp5ts.dllをc:\windowsにコピーする(推奨しない)
php.ini
php.ini-recommendedをphp.iniにコピー
memory_limit = 16M ; Moodle用
include_path = ".;c:\php\includes;c:\php\pear"
extension_dir = "./ext"
extension=php_mbstring.dll
extension=php_mcrypt.dll
extension=php_mysql.dll
extension=php_pgsql.dll ; Moodle用
extension=php_gd2.dll ; Moodle用
pearのインストール
c:\php\go-pear.batを実行する
pear.iniをc:\phpに作成するように指定する
pearライブラリのインストール
C:\php> pear upgrade-all
php.conf
LoadModule php5_module "c:/php/php5apache2.dll"
AddType application/x-httpd-php .php
PHPIniDir "c:/php"
httpd.confの設定
Include conf/extra/php.conf
動作確認
phpinfo.phpを用意

phpinfo.phpをアクセス