У меня есть следующий CSV файл:PHP fgetcsv - обнаруживая слишком много записей
"Id","Title","Body","Tags"
"101","this title","
\"">.</>"";
","c# asp.net excel table"
, который я хочу, чтобы преобразовать в массив следующим образом:
Array
(
[0] => Array
(
[0] => Id
[1] => Title
[2] => Body
[3] => Tags
)
[1] => Array
(
[0] => 101
[1] => this title
[2] => \"">.</>"";
[3] => c# asp.net excel table
)
)
Мой код:
while (($data = fgetcsv($handle, 0, ",")) !== FALSE) {
$num = count($data);
for ($c=0; $c < $num; $c++) {
$data[$c] = strip_tags($data[$c]);
}
$result[$row] = $data;
$row++;
}
fclose($handle);
return $result;
Моя проблема: я получаю следующий массив:
Array
(
[0] => Array
(
[0] => Id
[1] => Title
[2] => Body
[3] => Tags
)
[1] => Array
(
[0] => 101
[1] => this title
[2] =>
\">.</>"";
)
[2] => Array
(
[0] => ,c# asp.net excel table"
)
)
В общем, как мне избежать обнаружения слишком большого количества рек, когда есть потенциальный код внутри полей (это дамп данных StackOverflow, поэтому некоторые текстовые поля имеют все виды кода программирования).
Таким образом, решение было бы искать все символы кавычек и добавлять обратную косую черту, кроме случаев, когда она соответствует моему правильному разделителю строк (",")? – tucson