note 79721 added to function.fputcsv

From: Date: Mon, 10 Dec 2007 12:28:32 +0000
Subject: note 79721 added to function.fputcsv
Groups: php.notes 
Request: Send a blank email to php-notes+get-133146@lists.php.net to get a copy of this message
A complete example to write your records (rows) to a csv file using PHP4. <?php if (!function_exists('fputcsv')) { function fputcsv(&$handle, $fields = array(), $delimiter = ';', $enclosure = '"') { $str = ''; $escape_char = '\\'; foreach ($fields as $value) { if (strpos($value, $delimiter) !== false || strpos($value, $enclosure) !== false || strpos($value, "\n") !== false || strpos($value, "\r") !== false || strpos($value, "\t") !== false || strpos($value, ' ') !== false) { $str2 = $enclosure; $escaped = 0; $len = strlen($value); for ($i=0;$i<$len;$i++) { if ($value[$i] == $escape_char) $escaped = 1; else if (!$escaped && $value[$i] == $enclosure) $str2 .= $enclosure; else $escaped = 0; $str2 .= $value[$i]; } $str2 .= $enclosure; $str .= $str2.$delimiter; } else $str .= $value.$delimiter; } $str = substr($str,0,-1); $str .= "\n"; return fwrite($handle, $str); } } function WriteCsv($fileName, $delimiter = ';', $records) { $result = array(); foreach($records as $key => $value) $results[] = implode($delimiter, $value); $fp = fopen($fileName, 'w'); foreach ($results as $result) fputcsv($fp, split($delimiter, $result)); fclose($fp); } # =================== test ==================== define('CSV_SEPERATOR',';'); define('CSV_PATH','\\'); define('CSV_FILENAME','results.csv'); $records = array (array('aaa','bbb','ccc','dddd'), array('123','456','789'), array('"test1"', '"test2"', '"test3"') ); $fileName = $_SERVER['DOCUMENT_ROOT'] . CSV_PATH . CSV_FILENAME; WriteCsv ($fileName,';',$records); echo '<a href="' . CSV_PATH . CSV_FILENAME . '" target="_blanc">CSV File</a>'; ?> ---- Server IP: 61.195.146.164 Probable Submitter: 83.80.64.130 ---- Manual Page -- http://www.php.net/manual/en/function.fputcsv.php Edit -- https://master.php.net/note/edit/79721 Del: integrated -- https://master.php.net/note/delete/79721/integrated Del: useless -- https://master.php.net/note/delete/79721/useless Del: bad code -- https://master.php.net/note/delete/79721/bad+code Del: spam -- https://master.php.net/note/delete/79721/spam Del: non-english -- https://master.php.net/note/delete/79721/non-english Del: in docs -- https://master.php.net/note/delete/79721/in+docs Del: other reasons-- https://master.php.net/note/delete/79721 Reject -- https://master.php.net/note/reject/79721 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#133146) next »