[PHP-users 7664] explode関数 について

尾曽 貴弘 php-users@php.gr.jp
Fri, 24 May 2002 19:37:41 +0900


はじめて投稿させて頂きます。ホリオと申します。

explode関数を使って、以下のような処理をしてます。

 $aBuff = explode( "|", "ポテト|アイス" );	 // "|"はパイプ文字です。

こちらで期待しているのは

 $aBuff[0]:"ポテト"
 $aBuff[1]:"アイス"

なのですが、

実際には

	$aBuff[0]:"・"	 // "・"はキャラクターコード0x83です。
	$aBuff[1]:"テト"
	$aBuff[1]:"アイス"

という結果になります。

原因は"|"と"ポ"のキャラクターコードにあるようです。

"|"	: キャラクターコード 0x7C
"ポ"	: キャラクターコード 0x837C

つまり、explode関数内で"ポ"の2バイト目の0x7Cがセパレータとして認識
されてしまい上のような結果になってしまうようです。

PHPの4.2.0ではmb_splitという関数があるようですが、現状が4.1.2なので
この関数が使えません。

このような問題に直面した方いらっしゃいますでしょうか?
もし、その時の回避策等ありましたら、ご教授願いたいと思います。

環境は
[OS]  Vine Linux 2.1.5
[Web] Apache/1.3.19
[PHP] PHP4.1.2

※ PHPの内部文字コードはS-JISです。

よろしくお願い致します。


_________________________________________________________________
デジカメで撮った写真も自由自在に編集 MSN フォト アルバム 
http://photos.msn.co.jp/