我正在尝试使用fputcsv写入csv文件,当字符串太长时,它似乎失败了。
fputcsv在写作时是否有限制?
答案 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)!