fgetcsv ändern anderes Trennzeichen

Wenn alles nichts hilft, werde ich wohl auf meine aller erste Lösung zurückgreifen müssen. Diese funktioniert bei beiden Eingabe CSVS.

PHP:
$fh = fopen($argv[1], "r") or die ("cannot open file ".$argv[1]."\n"); 

$fh2 = fopen($argv[1]."neu", "a")or die ("cannot write file ".$argv[1]."neu\n");

if ($fh) {
  while (!feof($fh)) {
  $bingo = fgets($fh,1048576);
    if ($bingo) 
	{
	
	$felder = ereg_replace("\",","',",$bingo);
	$felder = ereg_replace(",\"",",'",$felder);
	$felder = str_replace(array("\r", "\n"), '', $felder);
	$felder = substr_replace($felder,"'",0,1);
	$felder = substr_replace($felder,"'",strlen($felder)-1);
	$felder = preg_replace("/[\"]/","\"\"",$felder);
	$felder = $felder."\r\n";
	$felder = ereg_replace("',","\",",$felder);
	$felder = ereg_replace(",'",",\"",$felder);
	$felder = ereg_replace("'","\"",$felder);
	
	//echo $felder;
	fwrite($fh2, $felder); 
    }
  }
 
  
  
}
 
hast du dir die von mir gepostete Klasse überhaupt mal angesehen? Und was soll eigentlich dieses doppelte gequote bringen? Entweder du nutzt Doppelteanführungsstriche zur Begrenzung eines Feldes und nutzt innherhalb eine Alternative oder du lässt sie weg und separierst die einzelnen Felder nur durch den von dir definierten Delimeter, in deinem Fall ein Komma.
MfG, Andy
 
Zuletzt bearbeitet von einem Moderator:
Hi,

Entweder du nutzt Doppelteanführungsstriche zur Begrenzung eines Feldes und nutzt innherhalb eine Alternative oder du lässt sie weg und separierst die einzelnen Felder nur durch den von dir definierten Delimeter, in deinem Fall ein Komma.

Er bekommt die Daten anscheinend von einem Kunden und kann das Format somit nicht beeinflussen.

LG
 
Zurück