2011-08-09 15 views
6

データベースをcsvにダウンロード可能なファイルとしてエクスポートできました。しかし、今私がする必要があるのは、ダウンロードしたストレート.csvファイルを作成するのではなく、サーバ上の "csv"というフォルダに保存するだけです。現在の輸出のための私のコードはここにあります。私はサーバーの部分に保存に助けが必要です。フォルダのCHMOD(CSV)は777データベースをCSVに変換し、サーバー上のフォルダにファイルを保存します。

$today = date('Y-m-d'); 

    $select = "SELECT * FROM goldpacks WHERE date = '$today'"; 

    $export = mysql_query ($select) or die ("Sql error : " . mysql_error()); 

    $fields = mysql_num_fields ($export); 

    for ($i = 0; $i < $fields; $i++) 
    { 
     $header .= mysql_field_name($export , $i) . "\t"; 
    } 

    while($row = mysql_fetch_row($export)) 
    { 
     $line = ''; 
     foreach($row as $value) 
     {            
      if ((!isset($value)) || ($value == "")) 
      { 
       $value = "\t"; 
      } 
      else 
      { 
       $value = str_replace('"' , '""' , $value); 
       $value = '"' . $value . '"' . "\t"; 
      } 
      $line .= $value; 
     } 
     $data .= trim($line) . "\n"; 
    } 
    $data = str_replace("\r" , "" , $data); 

    if ($data == "") 
    { 
     $data = "\n(0) Records Found!\n";       
    } 

    header("Content-type: application/octet-stream"); 
    header("Content-Disposition: attachment; filename=import.csv"); 
    print "$header\n$data"; 

答えて

9

であるあなたが追加する必要があるのはfile_put_contents()への呼び出しです。あなたはすでにあなたのcsvファイルが正しく$dataでフォーマットされているので、書き込みプロセスは簡単です。むしろ、Webサーバが700、またはグループ所有のように実行するユーザーが所有しなければならないのcsvフォルダに777権限、より

// $filename is whatever you need the file to be called 
file_put_contents("/path/to/csv/" . $filename, "$header\n$data"); 

Webサーバーユーザーは770と入力します。

+0

そんなに魅力的に働いてくれてありがとう! – Eddie

関連する問題