0

fputcsvを使用してcsvファイルに書き込もうとしていますが、文字列が長すぎると失敗するようです。

fputcsvには書き込み時に制限がありますか?

4

1 に答える 1

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 内で trim($value) することを忘れないでください!

于 2013-08-03T18:29:42.273 に答える