如果string为long,则fputcsv会失败

时间:2013-03-18 10:39:43

标签: php csv fputcsv

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

fputcsv在写作时是否有限制?

1 个答案:

答案 0 :(得分:0)

保存之前

trim()! 我试了一些东西来解决它(比如stripslashes()等等)。 当我手动添加fputcsv($ fp,'too loooooooooooo ... 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内部修剪($ value)!