当我从php

时间:2018-10-19 07:30:40

标签: php html csv

问候

当我想使用php脚本将数据从数据库输入到csv文件中时遇到问题。它会正确打印数据库中的所有内容,但是当它打印到csv文件时,就会出现字符错误,即不能很好地打印它们。 错误Ã,Ã,Ã,¼...以及我需要ä,ö,ü的示例。

如果我能以某种方式在数据库中打印csv文件? 我的代码:

<?php 



require_once 'connections.php'; 


$query = "SELECT Artikelnummer_im_Shop, EAN_GTIN_Barcodenummer_UPC, 
 Herstellerartikelnummern_HAN_MPN, Hersteller_Markenname, 
 Produktname,Preis_Brutto, Lieferzeit, Produktbeschreibung, ProduktURL, 
 BildURL_1, Versandkosten, Vorkasse, Paydirekt, Paypal, 
 Kreditkartenzahlung_uber_BS_PAYONE_GmbH, Versandkosten_Kommentar 
FROM app_table";

$result = mysqli_query($connect, $query) or die("database error:". 
mysqli_error($connect));

$file   = "inko-table.csv";
// Delete file if exist
unlink($file);
// Write to the file or create if not exist
$f      = fopen($file, 'w'); // Open in write mode ('w' will overwrite everything everytime)

$table      = "app_table";
$sql        = mysqli_query($connect, "SELECT * FROM $table");
$num_rows   = mysqli_num_rows($sql);
$products   = mysqli_fetch_array($sql);
// Writing data in file var $file

$i = 1;
while($row = mysqli_fetch_array($sql)) {

  $nameComma                  = $row['Produktname'];
    $name                       = str_replace(",", "", $nameComma);
    $pzn                        = $row['EAN_GTIN_Barcodenummer_UPC'];
    $url                        = $row['ProduktURL'];
    $brand                      = $row['Hersteller_Markenname'];
  $priceComma                 = $row['Preis_Brutto'];
    $price                      = str_replace(",", ".", $priceComma);
    $Artikelnummer              = $row['Artikelnummer_im_Shop'];
  $ProduktbeschreibungComma   = $row['Produktbeschreibung'];
    $Produktbeschreibung        = str_replace(",", "", $ProduktbeschreibungComma);
    $Herstellerartikelnummern   = $row['Herstellerartikelnummern_HAN_MPN'];
  $LieferzeitComma            = $row['Lieferzeit'];
    $Lieferzeit                 = str_replace(",", "", $LieferzeitComma);
    $BildURL_1                  = $row['BildURL_1'];
  $VersandkostenComma         = $row['Versandkosten'];
    $Versandkosten              = str_replace(",", ".", $VersandkostenComma);
    $Vorkasse                   = $row['Vorkasse'];
    $Paydirekt                  = $row['Paydirekt'];
    $Paypal                     = $row['Paypal'];
    $Kreditkartenzahlung        = $row['Kreditkartenzahlung_uber_BS_PAYONE_GmbH'];
  $KommentarComma             = $row['Versandkosten_Kommentar'];
    $Kommentar                  = str_replace(",", "", $KommentarComma);


    if ($i==1) {
        $product = "Artikelnummer im Shop".","."EAN / GTIN / Barcodenummer / UPC".","."Herstellerartikelnummern (HAN/MPN)".","."Hersteller / Markenname".","."Produktname".","."Preis (Brutto)".","."Lieferzeit".","."Produktbeschreibung".","."ProduktURL".","."BildURL_1".","."Versandkosten".","."Vorkasse".","."Paydirekt".","."Paypal".","."Kreditkartenzahlung über BS PAYONE GmbH".","."Versandkosten Kommentar"."\n".$Artikelnummer.",".$pzn.",".$Herstellerartikelnummern.",".$brand.",".$name.",".$price.",".$Lieferzeit.",".$Produktbeschreibung.",".$url.",".$BildURL_1.",".$Versandkosten.",".$Vorkasse.",".$Paydirekt.",".$Paypal.",".$Kreditkartenzahlung.",".$Kommentar."\n";
    } else {
        $product = $Artikelnummer.",".$pzn.",".$Herstellerartikelnummern.",".$brand.",".$name.",".$price.",".$Lieferzeit.",".$Produktbeschreibung.",".$url.",".$BildURL_1.",".$Versandkosten.",".$Vorkasse.",".$Paydirekt.",".$Paypal.",".$Kreditkartenzahlung.",".$Kommentar."\n";
    }

    $i++;

    fwrite($f, $product);
}
fclose($f);

?>

1 个答案:

答案 0 :(得分:0)

尝试:

string utf8_decode ( string $data );

例如:

$ProduktbeschreibungComma   = utf8_decode ($row['Produktbeschreibung']);

它应该返回正确的变音符号。

如果在您的csv文件中。在输出前使用utf_decode。尝试将csv文件的file_encoding更改为utf8。