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