2010年5月 7日

[PHP-users 35189]str_getcsvの妙な現象

こんにちは。

php5.3から入った str_getcsvですが、妙な現象で悩んでいます。

php cliで以下のプログラムを実行すると
#!/usr/bin/php5
<?php
$b = array() ;

$a = "0,20100313,110,AA,EJ,1,イ1032664714,,,2010021, \"A\"" ;
$b = str_getcsv( $a, ",", '"' ) ;

for ( $i=0; $i<12; $i++ ) echo "i=$i b=$b[$i]\n";
?>
以下のように正常に出力します。
i=0 b=0
i=1 b=20100313
i=2 b=110
i=3 b=AA
i=4 b=EJ
i=5 b=1
i=6 b=イ1032664714
i=7 b=
i=8 b=
i=9 b=2010021
i=10 b=A
i=11 b=

ところが、ソースを次のようにphtmlに替え、
<html><body>
<?php
$b = array() ;
$a = "0,20100313,110,AA,EJ,1,イ1032664714,,,2010021, \"A\"" ;
$b = str_getcsv( $a, ",", '"' ) ;

for ( $i=0; $i<12; $i++ ) echo "i=$i b=$b[$i]\n";
?>
</body></html>
apache2で実行すると、
i=0 b=0 i=1 b=20100313 i=2 b=110 i=3 b=AA i=4 b=EJ i=5 b=1 i=6
b=1032664714 i=7 b= i=8 b= i=9 b=2010021 i=10 b=A i=11 b=
のようになり、半角カタカナのイが消えてしまいます。

php.iniのdiffは次のとおりです。
tom-lin@xxxxx:/etc/php5/apache2# diff php.ini ../cli/php.ini
270c270
< memory_limit = 128M ; Maximum amount of memory a script may
consume (128MB)
---
> memory_limit = 32M ; Maximum amount of memory a script may
consume (32MB)
457c457
< ;magic_quotes_gpc = Off
---
> ;magic_quotes_gpc = On

mb_internal_encoding はともに UTF-8 です。
いったい何が原因でしょうか?
ヒントがあれば、よろしくお願いいたします。

野村
--
****** Nomura Technical Management Office Ltd. *****************
Tomoo Nomura nomura@xxxxx http://www.tmo.co.jp/
Phone: +81-78-797-0240 Fax: +81-50-3428-2033
Worldwide Airline Timetable 'Flight Planner'
European Electronic Timetable 'HAFAS' ValueFax Support
****************************************************************
_______________________________________________
PHP-users mailing list PHP-users@xxxxx
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3


投稿者 xml-rpc : 2010年5月 7日 15:35
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/95597
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。