CSVファイルを fgetcsv() で読み込もうとすると、文字コードの影響で正常に取得できないバグがあるらしい。。。
参考サイトはこちら
↓↓↓
PHP5 の fgetcsv() で読み込み内容が腐る現象
まだ実際には試していませんが、今後使用するときの注意事項としてメモリます。
( fgets()で取得してから自前でするって方法もあるかもしれませんが、
ファイル丸ごと文字コード変換してからすれば楽ですよね。。。)
CSVファイルを fgetcsv() で読み込もうとすると、文字コードの影響で正常に取得できないバグがあるらしい。。。
参考サイトはこちら
↓↓↓
PHP5 の fgetcsv() で読み込み内容が腐る現象
まだ実際には試していませんが、今後使用するときの注意事項としてメモリます。
( fgets()で取得してから自前でするって方法もあるかもしれませんが、
ファイル丸ごと文字コード変換してからすれば楽ですよね。。。)
PHPで foreach() での出力順は、基本は確保した順。
一意に保たれるとか保たれないとか情報がありますが。
注意点は配列の添字番号順にはならない、という事
$data[0] =”A”;
$data[2] =”C”;
$data[1] =”B”;
$data[0] =”Z”;
1 2 3 |
foreach($data as $val){ echo $val; } |
結果:「ZCB」
ksort($data);
でキーでソートして出力すると、
条件文を||でたくさん区切っていくより下記がすっきりします。
単純な場合は、switchがいい時もありますが。
if(in_array($val, array(‘あ’,’い’,’う’))){
echo “Hit!”;
}else{
echo “NG”;
}
phpの利点でもあり、注意が必要な所でもある値比較の曖昧さや、値のtrue/falseの評価。
基本的な部分ですがメモしておきます。
値 | 評価結果 |
---|---|
TRUE | TRUE |
FALSE | FALSE |
1 | TRUE |
0 | FALSE |
-1 | TRUE |
“1” | TRUE |
“0” | FALSE |
“-1″ | TRUE |
NULL | FALSE |
array() | FALSE |
“php” | TRUE |
“” | FALSE |
0や””(空欄)、false、を比較する時も要注意です。
厳密にチェックしたい場合は == ではなく===を使用します。
if(0 ==”) → true
if(0 ===”) → false
下記のサイトがわかりやすくまとめられています。
http://www.phppro.jp/phpmanual/php/types.comparisons.html