php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.09.2009, 10:31  
Benutzer
 
Registriert seit: 11.09.2009
Beiträge: 43
PHP-Kenntnisse:
Anfänger
laub kann nur auf Besserung hoffen
Standard Probleme mit Regex

Hallo,

bin noch relativ neu in PHP, habe eine Frage bzgl. Regex.

Ich lese aus einer MySql-DB die Empfängeradresse und den Mailcontent aus.

Habe dann ein Array mit [em_to] und [em_message].

Der Inhalt der Mail wurde durch ein Vorgabeformular generiert, der Aufbau ist immer gleich, lediglich die Kontaktdaten sind anders. Und diese möchte ich auch gerne per Regex auslesen.

So sieht die Mail aus:
Code:
Anrede: Herr Vorname: Max  Nachname: Mustermann Titel: Dr. Ich bin: Halsbabschneider Firmenname: Musterfirma  E-Mail-Adresse: max@mustermann.de
Habe mir dazu folgenen Code gebaut:

PHP-Code:
foreach ($inhaltsarray as $Inhalt1)
{
    
$msg_string implode(', '$Inhalt1);
    
//$test = "Hallo Anrede: Herr Vorname: Peter";
    
preg_match_all('#Anrede: (.*) Vorname#Uis'$msg_string$neuesarray);
    
print_r($neuesarray);
    
    } 
$inhaltsarray hat wie gesagt [em_to] (hier uninteressant) und [em_message].
Wenn ich in der Funktion normal echo $Inhalt1[em_message]; mache, dann kommt der ganze Mailtext, der Code sollte also ansonsten Funktionieren.

Ich möchte jetzt eine Ausgabe in diesem Schema haben:

PHP-Code:
Anrede$neuesarray[anrede];
Vorname$neuesarray[vorname]
Nachname$neuesarray[nachname]
usw 
Dazu lese, wie ihr oben sehen könnt den Text zwischen Anrede und Vorname aus.

Wenn ich $test aktiviere und in das preg_match_all nehme, dann gibt er wie gewünscht Herr aus. Dieser String funktioniert also.

Ich habe das Gefühl, dass es am implode scheitert. ich befürchte schon fast, dass er den gesamten Inhalt von $inhaltsarray in einen String verwandelt und das x-mal macht, da es ja in einer foreach-Schleife ist.


Und noch etwas: Ich möchte die Daten einerseits auf dem Monitor ausgeben, andererseits aber auch als .cvs download anbieten. Mir fällt spontan nur fopen bzw fwrite ein, um das cvs-file zu schreiben. Ist das auch ohne "lokale" speicherung möglich?

Hat jemand einen Tip?

Danke!

Geändert von laub (11.09.2009 um 10:57 Uhr).
laub ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 12.09.2009, 02:33  
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 1.733
PHP-Kenntnisse:
Fortgeschritten
mermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz sein
Standard

Zitat:
Zitat von laub Beitrag anzeigen
So sieht die Mail aus:
Code:
Anrede: Herr Vorname: Max  Nachname: Mustermann Titel: Dr. Ich bin: Halsbabschneider Firmenname: Musterfirma  E-Mail-Adresse: max@mustermann.de
Das ist der Inhalt von $inhaltsarray['em_message']?

Zitat:
Zitat von laub
$inhaltsarray hat wie gesagt [em_to] (hier uninteressant) und [em_message].
Wenn ich in der Funktion normal echo $Inhalt1[em_message]; mache, dann kommt der ganze Mailtext, der Code sollte also ansonsten Funktionieren.
Oder doch nicht? Was genau steht in $inhaltsarray? Warum "implodierst" du $Inhalt1?

Zitat:
Zitat von laub
Und noch etwas: Ich möchte die Daten einerseits auf dem Monitor ausgeben, andererseits aber auch als .cvs download anbieten. Mir fällt spontan nur fopen bzw fwrite ein, um das cvs-file zu schreiben. Ist das auch ohne "lokale" speicherung möglich?
Ja, ist es. Siehe zum Beispiel hier. Statt eine bestehende Datei per readfile auszugeben, kannst du einfach CSV-Zeilen per echo erzeugen, die dann in die Zieldatei geschrieben werden.

Edit: Das Entscheidende an dem verlinkten Beispiel sind übrigens bloß die beiden header-Zeilen, falls dich der Rest verwirren sollte.

Geändert von mermshaus (12.09.2009 um 02:40 Uhr).
mermshaus ist offline  
Alt 16.09.2009, 11:33  
Benutzer
 
Registriert seit: 11.09.2009
Beiträge: 43
PHP-Kenntnisse:
Anfänger
laub kann nur auf Besserung hoffen
Standard

Hat sich jetzt erledigt.

Der gesuchte Regex ist

PHP-Code:
preg_match(/Anrede: *([^n]*).*Vorname: *([^n]*).*Nachname: *([^n]*) 
Danke für die Hilfe
laub 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
Probleme mit einem Regex Optimus PHP Tipps 2009 3 04.03.2009 09:03
Array sortieren mit regex Lupi PHP Tipps 2008 3 21.07.2008 15:17
Regex: Auslesen der Meta-Tags einer Webseite Sucheingrenzung pepe24 PHP Tipps 2008 12 31.05.2008 15:41
2 Regex in PHP kompatible Syntax übersetzen NoiZy PHP-Fortgeschrittene 6 07.04.2008 09:04
Regex Link Problem Broadcast PHP Tipps 2008 2 29.02.2008 16:30
Gierig/nicht gieriger Regex Papst PHP Tipps 2008 22 02.12.2007 20:15
[gelöst :D ] regex tuts nur einmal pro zeile notyyy PHP Tipps 2008 17 24.09.2007 15:40
RegEx für Mail-Adresse (Bitte prüfen!) vollkommenegal PHP Tipps 2006 13 20.11.2006 20:02
Probleme bei Speicherung von serialize() Strings Manni2k PHP Tipps 2006 13 15.10.2006 15:06
habe ein paar fragen zu REGEX imported_kremser PHP Tipps 2006 11 31.01.2006 15:30
Problem mit zu langen String -> regex PHP Tipps 2006 1 25.01.2006 17:38
RegEx findet Stringvorkommen nicht PHP Tipps 2007 6 08.12.2005 21:52
[Erledigt] Probleme mit RegEx PHP-Fortgeschrittene 10 23.09.2005 18:19
Regex für attribute in quelltexten robo47 PHP Tipps 2005 6 27.01.2005 18:29
[Erledigt] Technische Probleme mit Sessions PHP-Fortgeschrittene 4 18.11.2004 14:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
regex vorname nachname, regex vorname, regex nachname, regexp vorname, php regex vorname, regular expression vorname, vorname regex, regex \vorname.nachname\, regex herr oder frau, php regexp vorname, preg_match anrede, vornamen regex, regex vorname name, regex anrede, vorname nachname regex, regex frau vorname nachnamen erkennen, regex email max@mustermann.de, neues an regex für php, javascript regex anrede, vorname nachname regex php

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:52 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