|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2001-07-13 01:47 UTC] bitlz at mail dot ru
a.csv: ( imported from microsoft excel 2000 )
???????;;;;5,58
??????? (??????????????????);;;345;9,15
a.php:
<?
$row = 1;
$fp = fopen ("a.csv","r");
while ($data = fgetcsv ($fp, 1000, ";")) {
$num = count ($data);
print "$num fields in line $row: <br>";
$row++;
for ($c=0; $c<$num; $c++) {
print $data[$c]." ";
}
echo "<br>";
}
fclose ($fp);
?>
output from a.php:
5 fields in line 1:
????? 5,58
5 fields in line 2:
????? (??????????????????) 345 9,15
---------------------------------------------
some letters are lost.
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Oct 29 20:00:01 2025 UTC |
Well, reproducing this bug on 4.3.0, 4.3.1 Code: <? $fh=fopen('1.csv','rb'); while (!feof($fh)) { $array[]=fgetcsv($fh,1024,';','"'); } fclose($fh); print_r($array); ?> CSV: F11;KDV;?????? ????. ? ?????? ???? ????;1:53:07;598 ;;Plazma - Take My Love;; F12;Film;?????? ????. ??????? ????????;2:00:15;680 F14;????????????????;?????? ??????????? 2;2:01:53;689 F24;Bedazzled;??????????? ?????????;1:31:47;672 F27;?????????;??? ??????? ?????????;1:33:31;597 Result: Array ( [0] => Array ( [0] => F11 [1] => KDV [2] => ?????? ????. ? ?????? ???? ???? [3] => 1:53:07 [4] => 598 ) [1] => Array ( [0] => [1] => [2] => Plazma - Take My Love [3] => [4] => ) [2] => Array ( [0] => F12 [1] => Film [2] => ?????? ????. ??????? ?????? [3] => 2:00:15 [4] => 680 ) [3] => Array ( [0] => F14 [1] => ??????????????? [2] => ????? ??????????? 2 [3] => 2:01:53 [4] => 689 ) [4] => Array ( [0] => F24 [1] => Bedazzled [2] => ?????????? ????????? [3] => 1:31:47 [4] => 672 ) [5] => Array ( [0] => F27 [1] => ???????? [2] => ?? ??????? ????????? [3] => 1:33:31 [4] => 597 ) [6] => ) Looks like it still loses foreign letters. Please REMOVE all foreign letter checks from FGETCSV. Strange behavior sometimes results in entire fields being lost.Well, reproducing this bug on 4.3.0, 4.3.1 Code: <? $fh=fopen('1.csv','rb'); while (!feof($fh)) { $array[]=fgetcsv($fh,1024,';','"'); } fclose($fh); print_r($array); ?> CSV: F11;KDV;?????? ????. ? ?????? ???? ????;1:53:07;598 ;;Plazma - Take My Love;; F12;Film;?????? ????. ??????? ????????;2:00:15;680 F14;????????????????;?????? ??????????? 2;2:01:53;689 F24;Bedazzled;??????????? ?????????;1:31:47;672 F27;?????????;??? ??????? ?????????;1:33:31;597 Result: Array ( [0] => Array ( [0] => F11 [1] => KDV [2] => ?????? ????. ? ?????? ???? ???? [3] => 1:53:07 [4] => 598 ) [1] => Array ( [0] => [1] => [2] => Plazma - Take My Love [3] => [4] => ) [2] => Array ( [0] => F12 [1] => Film [2] => ?????? ????. ??????? ?????? [3] => 2:00:15 [4] => 680 ) [3] => Array ( [0] => F14 [1] => ??????????????? [2] => ????? ??????????? 2 [3] => 2:01:53 [4] => 689 ) [4] => Array ( [0] => F24 [1] => Bedazzled [2] => ?????????? ????????? [3] => 1:31:47 [4] => 672 ) [5] => Array ( [0] => F27 [1] => ???????? [2] => ?? ??????? ????????? [3] => 1:33:31 [4] => 597 ) [6] => ) Looks like it still loses foreign letters. Please REMOVE all foreign letter checks from FGETCSV. Strange behavior sometimes results in entire fields being lost.