Created
June 8, 2012 08:52
-
-
Save johanmeiring/2894568 to your computer and use it in GitHub Desktop.
PHP str_putcsv function
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/* From: http://www.php.net/manual/en/function.str-getcsv.php#88773 and http://www.php.net/manual/en/function.str-getcsv.php#91170 */ | |
if(!function_exists('str_putcsv')) | |
{ | |
function str_putcsv($input, $delimiter = ',', $enclosure = '"') | |
{ | |
// Open a memory "file" for read/write... | |
$fp = fopen('php://temp', 'r+'); | |
// ... write the $input array to the "file" using fputcsv()... | |
fputcsv($fp, $input, $delimiter, $enclosure); | |
// ... rewind the "file" so we can read what we just wrote... | |
rewind($fp); | |
// ... read the entire line into a variable... | |
$data = fread($fp, 1048576); | |
// ... close the "file"... | |
fclose($fp); | |
// ... and return the $data to the caller, with the trailing newline from fgets() removed. | |
return rtrim($data, "\n"); | |
} | |
} |
Why was it tweaked
I used the original and it is buggy. By using fgets
it reads only one line from the stream. However csv supports linebreaks in cells.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Why was it tweaked from the original version, which had
$data = fgets($fp);
? And does anyone know why the original version got -1 points while it seems to work well?