我目前在读取包含HTML编码的特殊字符和html内容的CSV文件时使用fgetcsv遇到问题。通常,文件以分号分隔,但它也包含带分号的HTML内容。 EXCEL和任何基于Web的CSV Viewer都可以读取它,但是在使用fgetcsv时,它找不到正确的行尾。
文件示例:
1234;Example Text like grü;<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 );
有人知道解决方案吗?