正确读取和编辑包含编码的HTML和HTML编码的特殊字符的csv文件

时间:2018-09-30 14:22:28

标签: php html encoding fgetcsv

我目前在读取包含HTML编码的特殊字符和html内容的CSV文件时使用fgetcsv遇到问题。通常,文件以分号分隔,但它也包含带分号的HTML内容。 EXCEL和任何基于Web的CSV Viewer都可以读取它,但是在使用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 );

有人知道解决方案吗?

0 个答案:

没有答案