0

我正在尝试使用 fputcsv 写入 csv 文件,并且当字符串太长时它似乎失败了。

fputcsv 写的时候有限制吗?

4

1 回答 1

0

trim()保存之前!我尝试了一些方法来解决它(比如 stripslashes() 等等)。当我手动添加 fputcsv($fp, 'too looooooooooooo...ong string') 时,它起作用了。然后我查看了对于这个函数来说太长的 db 字段,并在值中发现了一些空格。所以这里是代码:

function get_items($db_handler) {
$array = array();
$query = "SELECT * FROM `db` WHERE <some condition>";
    $result = mysqli_query($db_handler, $query);
$i = 0;
while ($row = mysqli_fetch_assoc($result)) {    
     foreach ($row as  $key => $value) $array[$i][$key] = trim($value);
         $i++;  
}
mysqli_free_result($result);
return $array;
}
// now we put records into csv from the assoc array returned by get_items():

$items = get_items($db_handler);
$fp = fopen($file, 'a+');
foreach ($items as $fields) //
{
     fputcsv($fp, $fields);
} 
fclose($fp);

不要忘记在函数中的 foreach 内部进行 trim($value) !

于 2013-08-03T18:29:42.273 回答