我使用phpexcelreader(http://sourceforge.net/projects/phpexcelreader)导入excel(XLS)文件。用户手动打开excel,保存并导入后,文件将被解析并导入,没有任何问题。直接从生成excel的源系统导入时,文件无法正确导入。
我输出了两个excel文件的内容(好的文件和出错的文件),这就是我找到的。用它来输出内容:
echo '<pre>';
var_export($excel->sheets);
echo '</pre>';
这是好文件数组的一部分
0 =>
array (
'maxrow' => 0,
'maxcol' => 0,
'numRows' => 6,
'numCols' => 207,
'cells' =>
array (
4 =>
array (
1 => 'Employee First Name',
2 => 'Employee Last Name',
这是错误输出/
的文件数组的一部分 0 =>
array (
'maxrow' => 0,
'maxcol' => 0,
'numRows' => 7,
'numCols' => 208,
'cells' =>
array (
4 =>
array (
1 => 'E' . "\0" . 'm' . "\0" . 'p' . "\0" . 'l' . "\0" . 'o' . "\0" . 'y' . "\0" . 'e' . "\0" . 'e' . "\0" . ' ' . "\0" . 'F' . "\0" . 'i' . "\0" . 'r' . "\0" . 's' . "\0" . 't' . "\0" . ' ' . "\0" . 'N' . "\0" . 'a' . "\0" . 'm' . "\0" . 'e' . "\0" . '',
2 => 'E' . "\0" . 'm' . "\0" . 'p' . "\0" . 'l' . "\0" . 'o' . "\0" . 'y' . "\0" . 'e' . "\0" . 'e' . "\0" . ' ' . "\0" . 'L' . "\0" . 'a' . "\0" . 's' . "\0" . 't' . "\0" . ' ' . "\0" . 'N' . "\0" . 'a' . "\0" . 'm' . "\0" . 'e' . "\0" . '',
正如您所看到的,phpexcelreader正在添加&#34; \ 0&#34;在性格之后。在尝试防止这种情况发生或如何消毒字符串方面需要一些帮助吗?
答案 0 :(得分:0)
我对每个细胞的内容进行了消毒。这解决了问题
$cell = filter_var($cell, FILTER_SANITIZE_STRING);