<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Regul&auml;re Ausdr&uuml;cke - Regular Expressions - Testwerkzeug</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<?
$ergebnis="";
$regular_expression="";
$user_input="";

if (isset($_POST['ok']))
if (isset($_POST['regular_expression']) && isset($_POST['user_input']))
if (($_POST['regular_expression'] != "") && ($_POST['user_input'] !=""))
{
   $regular_expression=$_POST['regular_expression'];
   $user_input=$_POST['user_input'];

   // Es ist unklar, warum durch $_POST['<Variable>'] aus einem Backslash
   // doppelt soviele Backslash's entstehen. Daher sind nachfolgende Zeilen erforderlich:
   $regular_expression=str_replace('\\\\','\\',$regular_expression);
   $user_input=str_replace('\\\\','\\',$user_input);

   $length=strlen($regular_expression);

   if (substr($regular_expression,$length-1,1)!="/")
   {
      $regular_expression = $regular_expression."/";
   }

   if (substr($regular_expression,0,1)!="/")
   {
      $regular_expression = "/".$regular_expression;
   }


   // Mit der Funktion preg_match() wird die Benutzereingabe auf den festgelegten
   // Regulären Ausdruck überprüft. Sie liefert true wenn der Vergleich in Ordnung
   // ist, andernfalls liefert sie als Rückgabewert false.
   // Alternativ wurde früher eregi($regular_expression,$user_input) verwendet,
   // welche aber den Posix-Standard NICHT genau erfüllt !

   if (!preg_match($regular_expression,$user_input))
   {
      $ergebnis="Eingabe: NICHT OK";
   }else
   {
      $ergebnis="Eingabe: OK";
   }
}
?>
</head>
<body>
<body>
<form action="code1.php" method="post">

  <table width="80%" border="1">
    <tr>
      <td width="50%"><p>Regul&auml;rer Ausdruck:&nbsp;</td>
      <td width="50%"><input name="regular_expression" value="<? echo($regular_expression);?>" size=60 maxlength=60>&nbsp;</td>
    </tr>
    <tr>
      <td width="50%">Benutzereingabe:</td>
      <td width="50%"><input name="user_input" value="<? echo($user_input);?>" size=60 maxlength=60</td>&nbsp;</td>
    </tr>
    <tr>
      <td width="50%"  align="left"> <? if (isset($_POST['ok'])) echo(" ".$ergebnis); ?> &nbsp;</td>
      <td width="50%"  align="middle"> <input type="submit" name="ok" value="Testen">
  &nbsp;</td>
    </tr>
   </table>

</form>
</body>
</html>