php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 27.12.2004, 16:47  
Gast
 
Beiträge: n/a
Standard csv datei exploden

hallo,

ich stehe jetzt schon seit stunden vor dem selben problem, ich habe hier verschiedene csv dateien um gewandelt werden sollen. und ich bin die sache so angegangen, dass ich mit explode die datei zerlegt habe (beistriche als trennzeichen).

aber jetzt stehe ich vor dem problem, dass gewisse felder die selber eine beistrich enthalten (dadurch starten sie mit ," und enden mit ",)

hier mein code:
Code:
// convertiert thunderbird csv dateien in das standard outlook format
function thunderbirdToOutlook($csv_string)
{
	$debug = "on";
	
	$status = "NOT CLEAN";
	
	// beistriche aus dem datensaetzen entfernen
	while($status <> "CLEAN")
	{
		$cleanString = removeCommas($csv_string);
		
		// pruefen ob noch beistriche im den datensaetzen vorhanden sind
		$text = $cleanString;
		$suche = ',"';
		$search = stristr($text,$suche);
		
		if($search == "")
		{
			$status = "CLEAN";
			echo("huhu");
		}
		else
		{
			$status = "NOT CLEAN";
			echo("nooo");
		}
		
	}
	
	$codeExplode = explode(',', $cleanString);

	$vorname = $codeExplode[0];
	$nachname = $codeExplode[1];
	$anzeigename = $codeExplode[2];
	$spitzname = $codeExplode[3];
	$emailAdresse1 = $codeExplode[4];
	$emailAdresse2 = $codeExplode[5];
	$telefonGeschaeftlich = $codeExplode[6];
	$telefonPrivat = $codeExplode[7];
	$faxGeschaeftlich = $codeExplode[8];
	$pager = $codeExplode[9];
	$mobilTelefon = $codeExplode[10];
	$strassePrivat1 = $codeExplode[11];
	$strassePrivat2 = $codeExplode[12];
	$ortPrivat = $codeExplode[13];
	$regionPrivat = $codeExplode[14];
	$PostleitzahlPrivat = $codeExplode[15];
	$LandPrivat = $codeExplode[16];
	$strasseGeschaeftlich1 = $codeExplode[17];
	$strasseGeschaeftlich2 = $codeExplode[18];
	$ortGeschaeftlich = $codeExplode[19];
	$regionGeschaeftlich = $codeExplode[20];
	$postleitzahlGeschaeftlich = $codeExplode[21];
	$landGeschaeftlich = $codeExplode[22];
	$anrede = $codeExplode[23];
	$abteilung = $codeExplode[24];
	$firma = $codeExplode[25];
	$webseiteGeschaeftlich = $codeExplode[26];
	$webseitePrivat = $codeExplode[27];
	$leer1 = $codeExplode[28];
	$leer2 = $codeExplode[29];
	$leer3 = $codeExplode[30];
	$benutzer1 = $codeExplode[31];
	$benutzer2 = $codeExplode[32];
	$benutzer3 = $codeExplode[33];
	$benutzer4 = $codeExplode[34];
	$notiz = $codeExplode[35];
	
	if($debug == "on")
	{
		echo("Vorname: ".$vorname."[/b]
");
		echo("Nachname: ".$nachname."[/b]
");
		echo("Anzeige Name: ".$anzeigename."[/b]
");
		echo("Spitzname: ".$spitzname."[/b]
");
		echo("Email 1: ".$emailAdresse1."[/b]
");
		echo("Email 2: ".$emailAdresse2."
");
		echo("Telefon gesch&auml;ftlich: ".$telefonGeschaeftlich."
");
		echo("Telefon privat: ".$telefonPrivat."
");
		echo("Fax gesch&auml;ftlich: ".$faxGeschaeftlich."
");
		echo("Pager: ".$pager."
");
		echo("Mobiltelefon: ".$mobilTelefon."
");
		echo("Strasse 1 privat: ".$strassePrivat1."
");
		echo("Strasse 2 privat: ".$strassePrivat2."
");
		echo("Ort privat: ".$ortPrivat."
");
		echo("Region privat: ".$regionPrivat."
");
		echo("Postleitzahl privat: ".$PostleitzahlPrivat."
");
		echo("Land privat: ".$LandPrivat."
");
		echo("Strasse 1 gesch&auml;ftlich: ".$strasseGeschaeftlich1."
");
		echo("Strasse 2 gesch&auml;ftlich: ".$strasseGeschaeftlich2."
");
		echo("Region gesch&auml;ftlich: ".$regionGeschaeftlich."
");
		echo("Postleitzahl gesch&auml;ftlich: ".$postleitzahlGeschaeftlich."
");
		echo("Land gesch&auml;ftlich: ".$landGeschaeftlich."
");
		echo("Anrede: ".$anrede."
");
		echo("Abteilung: ".$abteilung."
");
		echo("Firma: ".$firma."
");
		echo("Webseite gesch&auml;ftlich: ".$webseiteGeschaeftlich."
");
		echo("Webseite privat: ".$webseitePrivat."
");
		echo("Leer 1: ".$leer1."
");
		echo("Leer 2: ".$leer2."
");
		echo("Leer 3: ".$leer3."
");
		echo("Benutzer 1: ".$benutzer1."
");
		echo("Benutzer 2: ".$benutzer2."
");
		echo("Benutzer 3: ".$benutzer3."
");
		echo("Benutzer 4: ".$benutzer4."
");
		echo("Notiz: ".$notiz."
");
		echo("<hr>");
	}	
}

// entfernt beistriche aus dem text
// TODO: diese funktion mit einer while schleife ausfuehren damit wirklich alle beistriche entfernt werden
function removeCommas($csv_string)
{
	$debug = "on";
	
	// string bei ," trennen
	$stringToCut = explode(',"', $csv_string);
	
	// string for ,"
	$stringBefore = $stringToCut[0];
	
	// string nach ",
	$i_count = count($stringToCut);
	$i_counter = 1;
	for ($i=0; $i<=$i_count; $i++)
	{
		$stringMiddle = explode('",', $stringToCut[$i_counter]);
		$stringConvert = str_replace (',', '', $stringMiddle[0]);
		
		$stringMerge = $stringConvert.','.$stringMiddle[1];
		
		$stringAfter = $stringAfter.','.$stringMerge;
		
		$i++;
		$i_counter++;
	}
	
	$stringReady = $stringBefore.$stringAfter;
	
	if($debug == "on")
	{
		echo("String Ready: ".$stringReady."
");
		
		$count = count($stringToCut);
		echo("Array Teile: ".$i_count."
");
	}
	
	return $stringReady;
}

$csvFile = file ('/tmp/thunderbird_test2.csv');

// Durchgehen des Arrays und Anzeigen des HTML Source inkl. Zeilennummern
foreach ($csvFile as $line_num => $csvFileline)
{
	thunderbirdToOutlook($csvFileline);
}
aber irgendwie geht das nicht ganz
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 27.12.2004, 16:52  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Der Beitrag wurde verschoben, wegen...
... Postings im falschen Forum.

Bemerkung:
Die gestellte Frage entspricht nicht dem Wissensstand eines/einer Fortgeschrittenen.

moved to PHP - Anfänger

Ich würde fgetcsv() benutzen, das macht sowas automatisch.
http://de.php.net/fgetcsv
__________________
mod = master of disaster
Waq ist offline  
Alt 27.12.2004, 20:24  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

> thunderbirdToOutlook()

..das sollte ich in meine Signatur übernehmen! Geil!!!
Basti ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Hochgeladene Datei wird doppelt abgelegt thecracked PHP Tipps 2008 3 01.07.2008 16:31
Datei per Buttonklick runterladen... go1denboy PHP Tipps 2008 7 14.06.2008 20:25
Großer Baum -> Große Datei -> Hohe Ladezeit :( PsychoEagle PHP Tipps 2008 7 22.09.2007 12:44
.gz Datei entpacken und mit dem Inhalt weiterarbeiten R4v3r PHP Tipps 2007 8 02.02.2007 14:49
String als Datei speichern Zangelo PHP Tipps 2006 23 25.08.2006 14:13
Datei durchsuchen Wöllchen Beitragsarchiv 3 02.03.2006 22:23
Datei auf FTP-Server ändern ohne lokal abzuspeichern faux PHP-Fortgeschrittene 11 02.09.2005 11:54
Datei mehrmals öffnen und schließen in einem Skript PHP Tipps 2005-2 14 14.07.2005 18:12
Ordner Struktur auslesen bestimmte datei finden .... silverghost PHP Tipps 2005 3 24.05.2005 13:55
Zeilenumbrüche & Neudatein mit PHP PHP Tipps 2004 5 21.10.2004 11:38
Datei mit php erzeugen Stümper PHP Tipps 2004 4 12.10.2004 12:51
php und ftp PHP Tipps 2004 4 07.10.2004 09:58
[Erledigt] datei editieren PHP Tipps 2004 1 10.09.2004 20:33
(ich schonwieder) Link seite automatisch imported_DJ Nuno PHP Tipps 2004 14 19.08.2004 17:42
Wie kann ich eine PHP Datei in eine HTML Datei umwandeln PHP Tipps 2004 2 12.08.2004 18:04

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
csv exploden

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:50 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.