Showing posts with label PHP rewind. Show all posts
Showing posts with label PHP rewind. Show all posts

Monday, 23 February 2015

PHP: Generate CSV file from a PHP array

Here is a simple but efficient function to generate a .csv file from a PHP array. The function accept 3 parameters: the data, the csv delimeter (default is a comma) and the csv enclosure (default is a double quote).
<?php
function generateCsv($data, $delimiter = ',', $enclosure = '"') { 
$handle = fopen('php://temp', 'r+'); 
foreach ($data as $line) { 
fputcsv($handle, $line, $delimiter, $enclosure);
 } 
rewind($handle); 
while (!feof($handle)) { 
$contents .= fread($handle, 8192); 
}
 fclose($handle); 
return $contents; 
}
?>

Saturday, 4 October 2014

rewind in PHP

rewind — Rewind the position of a file pointer
Syntax:

bool rewind ( resource $handle )
Sets the file position indicator for handle to the beginning of the file stream.

Note:
If you have opened the file in append ("a" or "a+") mode, any data you write to the file will always be appended, regardless of the file position.
Parameters:

handle
The file pointer must be valid, and must point to a file successfully opened by fopen().

Return values: Returns TRUE on success or FALSE on failure.



Example #1 rewind() overwriting example

<?php
$handle = fopen('output.txt', 'r+');

fwrite($handle, 'Really long sentence.');
rewind($handle);
fwrite($handle, 'Foo');
rewind($handle);

echo fread($handle, filesize('output.txt'));

fclose($handle);
?>
The above example will output something similar to:

Foolly long sentence.

fflush in PHP

fflush — Flushes the output to a file
Syntax:

bool fflush ( resource $handle )
This function forces a write of all buffered output to the resource pointed to by the file handle.

Parameters:

handle
The file pointer must be valid, and must point to a file successfully opened by fopen() or fsockopen() (and not yet closed by fclose()).

Return values: Returns TRUE on success or FALSE on failure.



Example #1 File write example using fflush()

<?php
$filename = 'bar.txt';

$file = fopen($filename, 'r+');
rewind($file);
fwrite($file, 'Foo');
fflush($file);
ftruncate($file, ftell($file));
fclose($file);
?>