parse csv (данные заключены в кавычки), используя fgetcsv () не работает должным образом

Я пытаюсь разобрать файл csv, где мои данные даны в формате, таком как:

"Total","Shazam (DE)","Total",,"215,611","538","£935.97","£60.77" 

Теперь, если я дам fgetcsv (), как показано ниже:

 $values = fgetcsv($f,8098); 

Он возвращает мне массив:

 array(9) { [0]=> string(15) ""Total"" [1]=> string(27) ""Shazam (DE)"" [2]=> string(15) ""Total"" [3]=> string(1) "" [4]=> string(9) ""215" [5]=> string(9) "611"" [6]=> string(11) ""538"" [7]=> string(19) ""£935.97"" [8]=> string(19) ""£60.77" " } 

но теперь, если я даю оператор if, например:

  $values = fgetcsv($f,8098); if ($values[0] == "Total") echo "Hello"; 

это ничего не повторяет, почему условие не выполняется? Это как-то связано с закрытыми цитатами?

Я даже попытался избежать цитат, например.

  if ($values[0] == '\"Total\"') echo "Hello"; 

но бесполезно.

Ну, мне нужно изменить любые настройки .ini для этого? Пожалуйста, помогите мне.

EDIT: Я попытался сделать var_dump, и он показал мои значения, содержащие кавычки:

  array(9) { [0]=> string(15) ""Total"" [1]=> string(27) ""Shazam (DE)"" [2]=> string(15) ""Total"" [3]=> string(1) "" ... } 

но даже

 $values[0] == "\"Total\"" 

не работает. Каким должен быть правильный компаратор?

ОБНОВЛЕНИЕ: после нескольких часов бесцельного проб и ошибок, наконец, нашел что-то раздражающее, но это устранило мою проблему.

Первоначально, когда я пытался открыть файл csv, он открыл блокнот с ÿþD "", поскольку он доволен. Я сделал это, скопировал весь файл и создал новый файл csv с тем же именем, и, к моему удивлению, он сработал.

Старый файл хорошо открывался в MS-EXCEL / NOTEPAD, но в excel каждая строка отображалась внутри одной ячейки.

Мой вопрос в том, в чем проблема с .csv fromat? С кем-либо сталкивались с такой проблемой раньше?

Я думаю, вам нужно определить классификатор текста, это называется вложением в fgetcsv . например:

 $values = fgetcsv($f,8098,'"'); // the last part is: singlequote doublequote singlequote, // you could also use an escape "\"" 

Это означает, что анализатор не должен принимать запятую внутри текстовой области.

Вы должны уметь:

 $values[0] == '"Total"' 

ОБНОВИТЬ:

Проблема с открытием файла странно, вероятно, связана с кодировкой файлов, создав новый файл, вы создали его с новой кодировкой, возможно, ANSI / UTF-8 / Unicode, что-то, что было в исходном файле, а затем скопировали содержимое там , поэтому теперь он был сохранен в этом формате .. im не уверен, почему это даст вам проблемы, которые вы испытываете, но я предполагаю, что парсер каким-то образом не справляется с неправильной кодировкой.

попробуйте открыть блокнот и заметить, когда вы нажимаете «Сохранить как», вы можете выбрать кодировку в buttom, попробуйте с несколькими разными файлами с различной кодировкой, если вы хотите убедиться, что это было?