2016-05-31 4 views
1

Ich schreibe Daten in eine CSV mit PHP, aber Excel scheint meine Daten in zufällige Reihen anzuordnen. Hier ist der Code:Warum generiert Excel meine CSV in zufälliger Weise (PHP)?

<?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"; 
     } 

    ?> 

Und hier ist ein Beispiel dafür, was ich meine (bitte beachten Sie, dass die Zeile 12 ist, wie ich die Daten organisiert werden soll:

Beispiel:

example

Könnte jemand bitte mir dabei helfen?

Antwort

2

Sie den Code unten verwenden können einige c by doing Hang entsprechend

  $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'); 

Hier können Sie $mappingResults->rows Namen Ihres Array $KeywordArray ändern.

Ich hoffe, das wäre hilfreich.