2013-06-09 2 views
0

Я получаю содержимое файла CSV и отображается (он работает).PHP str_replace CSV Content

if (($handle = fopen($url, 'r')) === false) { 
    die('Error opening file'); 
} 


$headers = fgetcsv($handle, 1024, ','); 
$complete = array(); 
while ($row = fgetcsv($handle, 1024, ',')) { 
    $complete[] = array_combine($headers, $row); 
} 
fclose($handle); 

Однако в этом файле CSV есть поле, которое имеет содержимое, например, как это:

"123456,123456,123456,123456" 

Я думаю мой код не обрабатывает из-за двойные кавычки, я думаю, Мне нужно преобразовать в одинарные кавычки. Если тот случай, как бы я интегрировать следующее (я думал что-то вроде):

str_replace('"',"'", $url); 

ответ

1

Посмотрите на другие параметры для fgetcsv()

По умолчанию символ корпус установлен в», что означает что-либо между цитаты следует рассматривать как одно значение Заменить этот параметр с тем, что вы на самом деле использовать в качестве символа корпуса в формате CSV, и он будет работать

что-то подобное (если ваш корпус символ «):..

while ($row = fgetcsv($handle, 1024, ',', "'")) { 

Лучше, чем читать его неправильно и попытаться исправить его после str_replace.

+0

привет, спасибо, что нашли время - похоже, что он работает! есть ли быстрый способ включить только заголовок и следующую строку? – iYugShell