<?PHP
  
namespace Chirp;

  
// Original PHP code by Chirp Internet: www.chirpinternet.eu
  // Please acknowledge use of this code by including this header.

  
$data = array(
    array(
"firstname" => "Mary""lastname" => "Johnson""age" => 25),
    array(
"firstname" => "Amanda""lastname" => "Miller""age" => 18),
    array(
"firstname" => "James""lastname" => "Brown""age" => 31),
    array(
"firstname" => "Patricia""lastname" => "Williams""age" => 7),
    array(
"firstname" => "Michael""lastname" => "Davis""age" => 43),
    array(
"firstname" => "Sarah""lastname" => "Miller""age" => 24),
    array(
"firstname" => "Patrick""lastname" => "Miller""age" => 27)
  );

  function 
cleanData(&$str)
  {
    if(
$str == 't'$str 'TRUE';
    if(
$str == 'f'$str 'FALSE';
    if(
preg_match("/^0/"$str) || preg_match("/^\+?\d{8,}$/"$str) || preg_match("/^\d{4}.\d{1,2}.\d{1,2}/"$str)) {
      
$str "'$str";
    }
    if(
strstr($str'"')) $str '"' str_replace('"''""'$str) . '"';
  }

  
// filename for download
  
$filename "website_data_" date('Ymd') . ".csv";

  
header("Content-Disposition: attachment; filename=\"$filename\"");
  
header("Content-Type: text/csv");

  
$out fopen("php://output"'w');

  
$flag FALSE;

  foreach(
$data as $row) {
    
array_walk($row__NAMESPACE__ '\cleanData');
    if(!
$flag) {
      
// display field/column names as first row
      
fputcsv($outarray_keys($row), ',''"');
      
$flag TRUE;
    }
    
fputcsv($outarray_values($row), ',''"');
  }

  
fclose($out);

  exit;