代码:
<?php
$file_name = 'test.csv';
if (($handle_f = fopen($file_name, "r")) !== FALSE)
{
while ( ($data_f = fgetcsv($handle_f, 20000, ";"))!== FALSE) {
echo Name - '.$data_f[0].', City - '.$data_f[1].', Adress - '.$data_f[2].', Site - '.$data_f[3].'<br>';
}
fclose($handle_f);
} else {$err = 1; echo "File not open";}
?>
例如,在结果中我会得到下一个(例如前两行):
Name - Сибвез, City - Абакан, Adress - ул. Советская, 44, Site - www.sibvez.ru
Name - Быттехника, City - Абакан, Adress - ул. Дружбы народов, д. 52, Site - www.sibvez.ru
但现在结果排在第2行:
Name - , City - , Adress - . Советская, 44, Site - www.sibvez.ru
Name - , City - , Adress - . Дружбы народов, д. 52, Site - http://www.bytech.ru
请告诉我为什么我无法得到正确的结果?
答案 0 :(得分:1)
您需要设置正确的区域设置 - 使用setlocale(LC_ALL, 'ru_RU.CP1251');
完整代码:
setlocale(LC_ALL, 'ru_RU.CP1251');
echo strtoupper('SERVER USE LOCALE ru_RU.CP1251');
$file_name = 'test.csv';
if (($handle_f = fopen($file_name, "r")) !== FALSE)
{
while ( ($data_f = fgetcsv($handle_f, 20000, ";"))!== FALSE) {
echo 'Name - '.$data_f[0].', City - '.$data_f[1].', Adress - '.$data_f[2].', Site - '.$data_f[3].'<br>';
}
fclose($handle_f);
} else {$err = 1; echo "File not open";}
setlocale参考:http://us2.php.net/manual/en/function.setlocale.php
答案 1 :(得分:0)
这里似乎存在语法错误:
while ( ($data_f = fgetcsv($handle_f, 20000, ";"))!== FALSE) {
echo Name - '.$data_f[0].', City - '.$data_f[1].', Adress - '.$data_f[2].', Site - '.$data_f[3].'<br>';
}
应该是:
while ( ($data_f = fgetcsv($handle_f, 20000, ";"))!== FALSE) {
echo 'Name - '.$data_f[0].', City - '.$data_f[1].', Adress - '.$data_f[2].', Site - '.$data_f[3].'<br>';
}