Правильно читать и редактировать CSV-файл, содержащий закодированные HTML и HTML-кодированные специальные символы - PullRequest
0 голосов
/ 30 сентября 2018

В настоящее время я сталкиваюсь с проблемой использования fgetcsv при чтении CSV-файла, содержащего специальные символы в кодировке HTML и содержимое HTML.Обычно файл разделяется точкой с запятой, но он также содержит HTML-контент с точкой с запятой.EXCEL и любой веб-просмотрщик CSV могут его прочитать, но при использовании fgetcsv он не находит правильный конец строки.

Пример файла:

1234;Example Text like gr&uuml;;<p style ="none;">this is html</p>;

Пример кода:

setlocale(LC_ALL, 'de_DE.UTF-8');
header('Content-Type: text/html; charset=UTF-8');

file_put_contents("./test_tmp.csv", fopen("https://xxx/test.csv", 'r'));

$input = fopen("./test_tmp.csv", 'r');  //open for reading
$output = fopen("./test.csv", 'w'); //open for writing

// <<- I guess the csv file needs to be decoded before fgetcsv reads 
// so it gets correctly delimited
while( false !== ( $data = fgetcsv($input,0,';'))){  //read each line as an array

fputs($output, implode($data)."\n");
}

//close both files
fclose( $input );
fclose( $output );

Кто-нибудь знает решение?

...