note 79721 added to function.fputcsv
| From: | boefje at hotmail dot com | 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