Konstantin: frage zu csv dateien und dem ignorieren eines kommas da drin?

hi,

ich habe eine frage:

ich habe mir eine funktion geschrieben um eine tabelle einer datenbank als csv datei auszugeben.
das klappt auch soweit, wenn ich allerdings jetzt die datei exportiere, dann sind da auch adressen drin, bei denen die strasse von der stadt mit nem komma getrennt sind. csv nimmt das als neues feld, was aber nicht sein soll und somit die tabelle ruiniert...
leider ist das aber auch nicht bei allen adressen der fall :(

so, jetzt wollte ich fragen, ob einer eine idee hat...??

wär cool,
danke, konstantin

  1. Hello,

    ich habe mir eine funktion geschrieben um eine tabelle einer datenbank als csv datei auszugeben.
    das klappt auch soweit, wenn ich allerdings jetzt die datei exportiere, dann sind da auch adressen drin, bei denen die strasse von der stadt mit nem komma getrennt sind. csv nimmt das als neues feld, was aber nicht sein soll und somit die tabelle ruiniert...
    leider ist das aber auch nicht bei allen adressen der fall :(

    Na klar:

    <?
    define ("CSV_SEP",";");
    define ("SUBST_SEP",",");
    define ("N","\r\n");

    $fh = fopen($dateiname,"w+");

    [...]
      $wok=true;
      while(($rec = mysql_fetch_assoc($res)) and $wok)
      {
        $out=array();
        foreach($rec as $field)
        {
          $field = str_replace(CSV_SEP,SUBST_SEP,$field);
          $out[] = $field;
        }

    $out = implode(CSV_SEP,$out);

    $wok = fwrite($fh,$out.N);

    }
    [...]

    ?>

    Du kannst bei CSV-Dateien ja auch andere Trennzeichenn als das Komma benutzen. Oder Du tauschst das Komma im Feld eben vorher durch das Semikolon oder einen Slash oder was Dir so einfällt.

    Grüße

    Tom