2016-05-31 38 views
1

我正在使用PHP將數據寫入CSV,但Excel似乎將我的數據排列成隨機行。下面是代碼:爲什麼Excel以隨機方式(PHP)生成我的CSV?

<?php 
    header('Content-type: text/csv'); 
    header('Content-Disposition: attachment; filename="Titles.csv"'); 

    // do not cache the file 
    header('Pragma: no-cache'); 
    header('Expires: 0'); 

    // create a file pointer connected to the output stream 
    $file = fopen('php://output', 'w'); 


    $keywords = $_POST['keywords']; 
    $copytext = $_POST['copytext']; 
    $brand = $_POST['brand']; 

    $KeywordArray = explode(',', $keywords); 
    $CopyTextArray = explode(',', $copytext); 
    $BrandArray = explode(',', $brand); 

    $RandomCopy = array_rand($CopyTextArray, 3); 
    $RandomBrand = array_rand($BrandArray, 3); 

    echo "Keyword,Title\n"; 

    foreach ($KeywordArray as $element) { 
     echo $element.","; 
     echo $element." "; 
     echo $CopyTextArray[$RandomCopy[rand(0,2)]]." "; 
     echo $BrandArray[$RandomBrand[rand(0,2)]]."\n"; 
     } 

    ?> 

這裏是我的意思的例子(請注意,行12我要如何對數據進行組織:

例子:

example

有人可以幫我這個嗎?

回答

2

你可以使用下面的代碼做一些c hanges因此

  $fileName = 'abc'; 
      $file = DIR_DOWNLOAD.$fileName.'.csv' ; 
      $mask = basename($file); 
      $fp = fopen($file, "w"); 
      $feilds = array('product_id','boost','status'); 
      fputcsv($fp, $feilds); 

      foreach($mappingResults->rows as $row){ 
       fputcsv($fp, $row); 
      } 
      fgetcsv($fp, 1000, ","); 
      fclose($fp); 
      header('Content-Type:text/csv'); 
      header('Content-Description: File Transfer'); 
      header('Content-Disposition: attachment; filename="' . ($mask ? $mask : basename($file)) . '"'); 
      header('Content-Transfer-Encoding: binary'); 
      header('Expires: 0'); 

在這裏您可以更改$mappingResults->rows到您的數組名稱$KeywordArray

希望這將是有益的。

相關問題