Zum Inhalt springen

ereg-Funktion Anfängerfrage


Empfohlene Beiträge

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen


<?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!

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...