Sandra: preg_replace, Ausgabeproblem

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!';
};

  1. 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

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
  2. 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

    1. 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;  
      ?>