ただし、CSV コンテンツを PHP に取得することにした場合はfgetcsv()
、実際の CSV 解析を使用していることを確認してください。
<?php
$csv = <<<EOT
EUR/USD,1353555876030,1.28,435,1.28,442,1.28261,1.28703,1.28278
USD/JPY,1353555897400,82.,448,82.,449,82.370,82.594,82.524
GBP/USD,1353555880620,1.59,610,1.59,618,1.59496,1.59722,1.59524
EUR/GBP,1353555883845,0.80,464,0.80,480,0.80374,0.80590,0.80416
USD/CHF,1353555869856,0.93,793,0.93,807,0.93549,0.93919,0.93886
EUR/JPY,1353555897821,105.,894,105.,901,105.825,106.267,105.862
EUR/CHF,1353555869848,1.20,470,1.20,491,1.20395,1.20509,1.20434
USD/CAD,1353555889301,0.99,580,0.99,595,0.99555,0.99684,0.99623
AUD/USD,1353555900458,1.03,892,1.03,901,1.03658,1.04019,1.03691
GBP/JPY,1353555897599,131.,593,131.,603,131.516,131.890,131.642
EOT;
// create a read/write location in memory
$handle=fopen("php://memory", "rw");
// copy the CSV to memory
fwrite($handle, $csv);
// rewind the handle to the beginning of the CSV
fseek($handle, 0);
// read the CSV from memory
while (($row=fgetcsv($handle)) !== false) {
// handle each row
print_r($row);
// do whatever mysql operations you want here
// ...
};
出力
Array
(
[0] => EUR/USD
[1] => 1353555876030
[2] => 1.28
[3] => 435
[4] => 1.28
[5] => 442
[6] => 1.28261
[7] => 1.28703
[8] => 1.28278
)
Array
(
[0] => USD/JPY
[1] => 1353555897400
[2] => 82.
[3] => 448
[4] => 82.
[5] => 449
[6] => 82.370
[7] => 82.594
[8] => 82.524
)
Array
(
[0] => GBP/USD
[1] => 1353555880620
[2] => 1.59
[3] => 610
[4] => 1.59
[5] => 618
[6] => 1.59496
[7] => 1.59722
[8] => 1.59524
)
Array
(
[0] => EUR/GBP
[1] => 1353555883845
[2] => 0.80
[3] => 464
[4] => 0.80
[5] => 480
[6] => 0.80374
[7] => 0.80590
[8] => 0.80416
)
Array
(
[0] => USD/CHF
[1] => 1353555869856
[2] => 0.93
[3] => 793
[4] => 0.93
[5] => 807
[6] => 0.93549
[7] => 0.93919
[8] => 0.93886
)
Array
(
[0] => EUR/JPY
[1] => 1353555897821
[2] => 105.
[3] => 894
[4] => 105.
[5] => 901
[6] => 105.825
[7] => 106.267
[8] => 105.862
)
Array
(
[0] => EUR/CHF
[1] => 1353555869848
[2] => 1.20
[3] => 470
[4] => 1.20
[5] => 491
[6] => 1.20395
[7] => 1.20509
[8] => 1.20434
)
Array
(
[0] => USD/CAD
[1] => 1353555889301
[2] => 0.99
[3] => 580
[4] => 0.99
[5] => 595
[6] => 0.99555
[7] => 0.99684
[8] => 0.99623
)
Array
(
[0] => AUD/USD
[1] => 1353555900458
[2] => 1.03
[3] => 892
[4] => 1.03
[5] => 901
[6] => 1.03658
[7] => 1.04019
[8] => 1.03691
)
Array
(
[0] => GBP/JPY
[1] => 1353555897599
[2] => 131.
[3] => 593
[4] => 131.
[5] => 603
[6] => 131.516
[7] => 131.890
[8] => 131.642
)
[Finished in 0.1s]
ファイル システムのどこかにファイルとして CSV を使用できる場合は、すべてをメモリにロードする必要はありません。その場合fopen()
は、ファイル名とr
パラメーターを使用して渡します。