Regulärer Ausdruck
rH
- php
Hallo Forum,
leider stört mich mal wieder ein kleiner Regulärer Ausdruck und ich steh heut' auf dem Schlauch! ;)
Wenn wir jemand helfen kann dann los?
Hier das Skript:
----------------------------
<?
$mailtext="Hallo [NAME|VORNAME],\n".
"ihre persönlichen Daten\n".
"[DATENBLOCK]".
"wurden gespeichert. usw........";
if(!eregi("DIE_GROSSE_FRAGE",$mailtext,$arr))
echo "Was ist jetzt schon wieder los";
?>
----------------------------
Ich möchte einen Reg. Ausdruck erhalten der mir folgendes Ergebnis erzeugt!
----------------------------
<?
$example=array(
0 => "REG EXPR.",
1 => "NAME|VORNAME",
2 => "DATENBLOCK"
)
?>
----------------------------
Danke im Vorraus!
rH
Hi,
$mailtext="Hallo [NAME|VORNAME],\n".
"ihre persönlichen Daten\n".
"[DATENBLOCK]".
"wurden gespeichert. usw........";
das ist die Variable, die Du durchsuchen willst?
echo "Was ist jetzt schon wieder los";
Auf ektisch lässt sich das effizienter ausdrücken ;-)
$example=array(
0 => "REG EXPR.",
1 => "NAME|VORNAME",
2 => "DATENBLOCK"
/Hallo (.*?),\nihre persönlichen Daten\n(.*?)\nwurden gespeichert. usw......../
Nur mal als Annäherung - damit Du siehst, dass es gar nicht so schwer ist :-)
Cheatah
Hallo!
$example=array(
0 => "REG EXPR.",
1 => "NAME|VORNAME",
2 => "DATENBLOCK"
/Hallo (.*?),\nihre persönlichen Daten\n(.*?)\nwurden gespeichert. usw......../
Und einen Regulären Ausdrck wie oben packst Du dann einfach in die Funktion preg_match() http://www.php.net/manual/de/function.preg-match.php, da brauchst Du dann gemä´der Definition
int preg_match ( string pattern, string subject [, array matches [, int flags]])
den 3. Parameter "array matches", in diese Variable wird dann der Array mit den Treffern geschrieben, wie der Name schon sagt.
Grüße
Andreas
Thx,
hey von der Seite aus habe ich das gar noch nicht betrachtet!
Die Idee wird auf jedenfall funktionieren!
gtx
Hi,
$mailtext="Hallo [NAME|VORNAME],\n".
"ihre persönlichen Daten\n".
"[DATENBLOCK]".
"wurden gespeichert. usw........";
das ist die Variable, die Du durchsuchen willst?
echo "Was ist jetzt schon wieder los";
Auf ektisch lässt sich das effizienter ausdrücken ;-)
Meine Richtige Meldung sieht anders aus! ;)
$example=array(
0 => "REG EXPR.",
1 => "NAME|VORNAME",
2 => "DATENBLOCK"
/Hallo (.*?),\nihre persönlichen Daten\n(.*?)\nwurden gespeichert. usw......../
Nur mal als Annäherung - damit Du siehst, dass es gar nicht so schwer ist :-)
Cheatah
Leider kann ich deinen Vorschlag nicht verwenden, da der Reg. Ausdr. variabel sein muss!
Hier jetzt die erw. Erklärung meines Skriptes!
1. Der Text kann per Textarea geändert werden und wird daraufhin in einer
Datenbank gespeichert!
2. Es wäre auch möglich mehrere Textblöcke zu x-fachen (z.B. Hallo [NAME], wie geht es dir heute so [NAME|LOGIN] in [STRASSE|PLZ|ORT])
Genug Background-Info???
Chu
Hi!
/Hallo (.*?),\nihre persönlichen Daten\n(.*?)\nwurden gespeichert. usw......../
Nur mal als Annäherung - damit Du siehst, dass es gar nicht so schwer ist :-)
Cheatah
Leider kann ich deinen Vorschlag nicht verwenden, da der Reg. Ausdr. variabel sein muss!
Hier jetzt die erw. Erklärung meines Skriptes!
- Der Text kann per Textarea geändert werden und wird daraufhin in einer
Datenbank gespeichert!- Es wäre auch möglich mehrere Textblöcke zu x-fachen (z.B. Hallo [NAME], wie geht es dir heute so [NAME|LOGIN] in [STRASSE|PLZ|ORT])
Genug Background-Info???
naja, ich muß sagen das sich mir das was Du vorhast nicht wiorklich erschließt. Warum machst Du das? Was willst Du genau erreichen? Du kannst doch nicht automatisiert einen Text auseinandernehmen, von dem Du kein Stück sicher kennst?!
So wie das aussieht solltest Du Dir überlegen das was Du mit dem regulären Ausdruck ermittlest auf andere Art zu ermitteln, am besten bevor Du das mit den User-Eingaben mischst!
Grüße
Andreas
Hi!
/Hallo (.*?),\nihre persönlichen Daten\n(.*?)\nwurden gespeichert. usw......../
Nur mal als Annäherung - damit Du siehst, dass es gar nicht so schwer ist :-)
Cheatah
Leider kann ich deinen Vorschlag nicht verwenden, da der Reg. Ausdr. variabel sein muss!
Hier jetzt die erw. Erklärung meines Skriptes!
- Der Text kann per Textarea geändert werden und wird daraufhin in einer
Datenbank gespeichert!- Es wäre auch möglich mehrere Textblöcke zu x-fachen (z.B. Hallo [NAME], wie geht es dir heute so [NAME|LOGIN] in [STRASSE|PLZ|ORT])
Genug Background-Info???
naja, ich muß sagen das sich mir das was Du vorhast nicht wiorklich erschließt. Warum machst Du das? Was willst Du genau erreichen? Du kannst doch nicht automatisiert einen Text auseinandernehmen, von dem Du kein Stück sicher kennst?!
Ich arbeite gerade an einem Projekt für dyn. Mailbenachrichtigungen!
Der Administrator einer Site erhält bestimmte Variablen-Mengen für einen Mailtext (z.B neuanmeldung, Blöcke: NAME, STRASSE, PLZ, ORT)
Mit [] werden die jeweiligen Variablen gekennzeichnet!
Beim parsen des Mailtextest ensteht folgendes Konstrukt:
BSP: Hallo [NAME], -> Hallo($NAME!="")?" {$NAME}":"",
BSP: Hallo [NAME|VORNAME], -> HALLO ($NAME!="")?" {$VORNAME}":""($VORNAME!="")?" {$NAME}":"",
So wie das aussieht solltest Du Dir überlegen das was Du mit dem regulären Ausdruck ermittlest auf andere Art zu ermitteln, am besten bevor Du das mit den User-Eingaben mischst!
Meine Lösung (derzeit split(".......",$var)) funktioniert auch schon, nur leider muss ich jedes Array-Element auf Fehlerquellen checken.
Andreas
Hi,
Der Administrator einer Site erhält bestimmte Variablen-Mengen für einen Mailtext (z.B neuanmeldung, Blöcke: NAME, STRASSE, PLZ, ORT)
Mit [] werden die jeweiligen Variablen gekennzeichnet!
Beim parsen des Mailtextest ensteht folgendes Konstrukt:
BSP: Hallo [NAME], -> Hallo($NAME!="")?" {$NAME}":"",
BSP: Hallo [NAME|VORNAME], -> HALLO ($NAME!="")?" {$VORNAME}":""($VORNAME!="")?" {$NAME}":"",
naja, dann mach das doch einfach exakt so: Ersetze alle '[NAME]' durch '($NAME!="")?" {$NAME}":""'. Dazu brauchst Du nicht mal Regular Expressions.
Cheatah
Oh Mann,
ich glaub ich bin heut völlig verwirrt (wie schon gesagt: ... steh auf dem Schlauch... )!
Du hast total recht,
warum mussich überhaupt einen regulären Audruck verwenden!
Ich kenne die Variablen eh und kann Sie fix ersetzen sogar mit einem str_replace wäre dies möglich!
Alle Mühen um sonst, ich glaub jetzt wird es Zeit für den Feierabend!
Danke trotzdem!
rH
Hi,
ich glaub ich bin heut völlig verwirrt (wie schon gesagt: ... steh auf dem Schlauch... )!
das typische Fachidiotentum: Man schraubt sich solange Bretter vor den Kopf, bis man diese nicht mehr von Wäldern und Bäumen unterscheiden kann. Kennen wir alle, denke ich :-)
Alle Mühen um sonst, ich glaub jetzt wird es Zeit für den Feierabend!
Naja, dann hattest Du wenigstens noch ein Erfolgserlebnis zum Tagesabschluss ;-)
Cheatah