Ben bir CSV dosyasını kabul eder ve bir diziye her satır okur basit bir komut dosyası var. Sonra döngü ilk satırdaki (benim durumumda bir anketin sorularını tutar), her sütun aracılığıyla ve ben bunları yazdırabilirsiniz. Anket Fransız olduğunu ve bir sorunun ilk karakteri özel bir karakter (é, ê, ç, vb) fgetcsv sadece bunu atlar olduğunda.
Bu ilk karakter olan sadece değerinin ortasında özel karakterler etkilenmez.
Ben bu hata ayıklamak için çalıştı ama ben şaşkın. Ben dosya içeriği ile bir var_dump yaptım ve karakterler kesinlikle vardır:
var_dump(utf8_encode(file_get_contents($_FILES['csv_file']['tmp_name'])));
Ve işte benim kod:
if(file_exists($_FILES['csv_file']['tmp_name']) && $csv = fopen($_FILES['csv_file']['tmp_name'], "r"))
{
$csv_arr = array();
//Populate an array with all the cells of the CSV file
while(!feof($csv))
{
$csv_arr[] = fgetcsv($csv);
}
//Close the file, no longer needed
fclose($csv);
// This should cycle through the cells of the first row (questions)
foreach($csv_arr[0] as $question)
{
echo utf8_encode($question) . "<br />";
}
}