2016-05-31 37 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

希望这将是有益的。

相关问题