halimeh Geschrieben 1. Januar 2005 Teilen Geschrieben 1. Januar 2005 Moinsen ! Ich möchte einfach einen String dahingehend überprüfen, ob er aus bis zu eintausend beliebigen Kleinbuchstaben von a bis z ohne umlaute wie z.B. ä besteht. Dazu habe ich folgenden PHP-Quellcode erstellt: <?php $teststring="Irgendein freakiger Testtext"; $muster=([a-z]){1,1000}; $ergebnis=ereg($muster,$teststring); if ($ergebnis===true) echo("der teststring entspricht dem muster"); else echo("der teststring entspricht nicht dem muster"); ?> Irgendwie haut das aber nicht hin.Ich vermute einen SyntaxFehler in der Zeile: $muster=([a-z]){1,1000}; Da ich von PHP aber noch nicht allzu viel Ahnung habe, könnten auch gröbere Denkfehler drin stecken. Kann mir da jemand weiterhelfen? Thx and greetz. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DFBL-Benjamin Geschrieben 1. Januar 2005 Teilen Geschrieben 1. Januar 2005 <?php $teststring="Irgendein freakiger Testtext"; $muster=([a-z]){1,1000}; $ergebnis=ereg($muster,$teststring); [B]if ($ergebnis===true)[/B] echo("der teststring entspricht dem muster"); else echo("der teststring entspricht nicht dem muster"); ?> in der Fettmarkierten Zeile hast du was falsch einen Vergleich wird nur mit == Gleichheitszeichen erstellt. Zu dem anderen kann ich leider nichts sagen, da ich damit noch nie was zu tun hatte! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 1. Januar 2005 Teilen Geschrieben 1. Januar 2005 in der Fettmarkierten Zeile hast du was falsch einen Vergleich wird nur mit == Gleichheitszeichen erstellt. Zu dem anderen kann ich leider nichts sagen, da ich damit noch nie was zu tun hatte! Das ist nicht korrekt. In diesem Fall kann ein Vergleich mit "===" durchgeführt werden! zum Topic: <?php $teststring="Irgendein freakiger Testtext"; $muster="([a-z]){1,1000}"; // hier haben die "" gefehlt $ergebnis=ereg($muster,$teststring); if ($ergebnis===true) echo("der teststring entspricht dem muster"); else echo("der teststring entspricht nicht dem muster"); ?> [/PHP] ob bei dieser RegEx auch die umlaute ausgeschlossen sind kann ich nicht direkt sagen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
halimeh Geschrieben 1. Januar 2005 Autor Teilen Geschrieben 1. Januar 2005 Moinsen ! Bezüglich der "===" : In diesem Fall können tatsächlich drei Gleichheitszeichen verwendet werden.Es ist der sog. Identitätsoperator.Nichtsdestotrotz habe ich es mal mit nur zwei Gleichheitszeichen probiert; hat aber nichts gebracht. Aufgrund von kills Empfehlung habe ich die dritte Zeile meines Quellcodes korrigiert: $muster="([a-z]){1,1000}"; Das hat mich zwar etwas weitergebracht aber das Programm läuft dennoch nicht ganz rund. Es erscheint jetzt immer das Ergebnis: "der teststring entspricht nicht dem muster" auch wenn ich den Testtext, also $teststring dem Muster ($muster) angepaßt habe. Wenn das Programm ausgeführt wird, kommt zusätzlich noch folgende Fehlermeldung: Warning: ereg() [function.ereg]: REG_BADBR in C:\froshky\WebServer\apachefriends\xampp\htdocs\test01.php on line 4 Wenn es tatsächlich an "line 4" liegt, wäre ein Fehler in der Zeile: $ergebnis=ereg($muster,$teststring); Kann nochmal jemand weiterhelfen? Thx and greetz. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FMG Geschrieben 2. Januar 2005 Teilen Geschrieben 2. Januar 2005 Bei ereg() ist nicht der zweite Parameter die Anzahl, sondern der dritte. ereg() erwartet folgende Parameter: 1. Suchmuster (String) 2. Zeichenkette (String) 3. Anzahl der Suchmuster (Array) [optionaler Parameter] Du hast aber nur 2... Anstatt ereg() sollte man laut http://www.php-faq.de/q/q-regexp-ereg.html auch eher preg_match() nehmen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
halimeh Geschrieben 2. Januar 2005 Autor Teilen Geschrieben 2. Januar 2005 Moinsen ! Das mit der preg_match()-Funktion habe ich mal ausprobiert und scheint auch zu klappen. Aber durch meine CodeZeile: $muster="([a-z]){1,1000}"; wird auch eine Übereinstimmung gefunden, wenn Großbuchstaben im Testtext vorhanden sind, daher habe ich mal die Bedingung umgedreht: $muster="([A-ZäÄöÖüÜ]){1,1000}"; und somit alle nichterwünschten Zeichen ausgeschlossen. Hier nun mein kompletter Quellcode: <?php $teststring="irgendein freakiger Testtext"; $muster="([A-ZäÄöÖüÜ]){1,1000}"; if (preg_match("/$muster/","$teststring")) { echo("der teststring entspricht nicht dem muster"); } else { echo("der teststring entspricht dem muster"); } ?> Ist jetzt zwar noch nicht hundertprozentig das, was ich suche, aber schon mal nahe dran.Ich werde mir demnächst dann nochmal die preg_match()-Funktion genauer ansehen. Greetz. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.