Ingo Turski: (CSV) Zeilenumbruch in letzter Zelle

Beitrag lesen

Hi,

Wenn die Textzelle nun aber auch noch das Separator-Zeichen (also Komma, Tab, Semikolon, o. ä.) enthält, dann hat man meistens verloren.

nicht unbedingt - dann müsste, wie schon gesagt wurde, eigentlich das ganze Feld in "" gesetzt worden sein. Ich habe mal so eine ähnliche Datei ausgewertet. Vielleicht etwas umständlich, aber es hatte geklappt:

  
  if(file_exists($Losungsdatei)) $Losungen = file($Losungsdatei);  
  if(isset($Losungen) && count($Losungen)>$Losungstag) {  
    $Losungen[$Losungstag] = str_replace(';','|',$Losungen[$Losungstag]);  
    $Losungen[$Losungstag] = str_replace('| ','; ',$Losungen[$Losungstag]);  
# der Trenner war ein Semikolon, was ich geändert habe und danach evtl. fehlerhafte Änderungen wieder zurückgeommen habe.  
  
# weiterer Code...  
  
    $Losung = explode("|", $Losungen[$Losungstag]);  
    $Losung[6] = trim($Losung[6]);  
# den letzten Zeilenumbruch löschen.  
  
# weiterer Code...  
  
    for($i=4; $i<=6; $i+=2) {  
      if(strpos($Losung[$i],'"')===0) {  
        $Losung[$i] = substr($Losung[$i],1,strlen($Losung[$i])-2);  
        $Losung[$i] = str_replace('""','"',$Losung[$i]);  
      }  
# Hier werden evtl. vorhandene doppelte Quotes eliminiert.  

Der Aufwand wäre aber mit den CSV-Funktionen vermutlich nicht nötig.

freundliche Grüße
Ingo