preg_replace, Ausgabeproblem
Sandra
- php
Ich möchte mittels preg_replace prüfen ob nur Buchstaben in meiner Ariable
sind, bei einem Fehler wie einer Zahl soll es eine Fehlermeldung geben!
Aber es haut nicht hin so wie ich es will?
$test='testwort1';
if (preg_replace ( '~[^a-z/>]~i', '',$test ))
{
echo 'Verbotenes Zeichen!';
};
Hi,
Ich möchte mittels preg_replace prüfen ob nur Buchstaben in meiner Ariable
sind, bei einem Fehler wie einer Zahl soll es eine Fehlermeldung geben!
Aber es haut nicht hin so wie ich es will?$test='testwort1';
if (preg_replace ( '~[^a-z/>]~i', '',$test ))
{
echo 'Verbotenes Zeichen!';
};
Biete lies im Handbuch nach, was der Rückgabewert von preg_replace ist und aussagt. Und lass dir mittels var_dump ausgeben, was dein preg_replace im konkreten Fall zurückgibt.
Wenn du wirklich nur prüfen willst – dann verwende preg_match.
MfG ChrisB
Hallo Sandra,
if (preg_replace
Du möchtest mal ins Handbuch schauen was preg_replace() eigentlich zurück gibt - und anschließend möchtest du feststellen dass preg_match() für deinen Zweck hilfreicher ist.
( '~[^a-z/>]~i', '',$test ))
Was genau haben / und > in der Zeichenklasse zu suchen?
{
echo 'Verbotenes Zeichen!';
};
Was bezweckst du mit dem Semikolon hinter »}«?
Gruß,
Tobias
Ich hab das mit "preg_replace" so gemacht. Aber vieleicht gibt es auch noch eine einfache kürzere Möglichkeit.
Moritz
<?php
// Das Passwort
$passwort ='123Ü456';
if(isset($passwort))
{
$neu = preg_replace ( '~[^a-z0-9]~i', '',$passwort);
$a = strlen($passwort);
$b = strlen($neu);
if ($a==$b) // Überprüfung ob unerlaubte Zeichen
{
if (strlen($neu)>4) // Überprüfung ob lang genug
{
$infotext .=' Passwort ist OK';
}
else
{
$infotext .=' Das Passwort muss mindestens 5 Zeichen haben! ';
}
}
else
{
$infotext .='Es sind nur Zeichen A...z und Ziffer 0...9 erlaubt ';
}
}
echo $infotext;
?>