ich habe gestern ein paar Skripts mit regulären Ausdrücken geschrieben.
Ich habe mit folgendem angefangen:
- Code: Select all
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/transitional.dtd">
<html>
<head>
<title>BB Code umwandeln</title>
</head>
<body>
<?php
if (isset($_POST[sub])){
//Wegen PHP- register_globals="on" / "off"
$text = $_POST[text];
//Folgende 5 Pattern wandeln [URL] bzw [/URL] um.
$text = preg_replace("/\[url\]http:\/\/(.*?)\[\/url\]/si",
"<a href=\"http://\\1\" target=\"_blank\">\\1</a>", $text);
$text = preg_replace("/\[url\] http:\/\/(.*?)\[\/url\]/si",
"<a href=\"http://\\1\" target=\"_blank\">\\1</a>", $text);
$text = preg_replace("/\[url\](.*?)\[\/url\]/si",
"<a href=\"http://\\1\" target=\"_blank\">\\1</a>", $text);
$text = preg_replace("/\[url=http:\/\/(.*?)\](.*?)\[\/url\]/si",
"<a href=\"http://\\1\" target=\"_blank\">\\2</a>", $text);
$text = preg_replace("/\[url=(.*?)\](.*?)\[\/url\]/si",
"<a href=\"http://\\1\" target=\"_blank\">\\2</a>", $text);
echo "$text \n <br /><br /><br />";
echo "<a href=\"$_SERVER[PHP_SELF]\">Zurück zum Formular</a> \n <br />";
} else {
?>
<p>[URL=http://www.link.de]Link[/URL]</p>
<form action="bb_code_umwandeln.php" method="post">
<textarea name="text" cols="50" rows="10" /></textarea><br />
<input type="submit" value="Abschicken" name="sub"/>
<?php
}
?>
</form>
</body>
</html>
Das hat geklappt.
Aber folgendes ging nicht:
- Code: Select all
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/transitional.dtd">
<html>
<head>
<title>PLZ (D) testen</title>
</head>
<body>
<?php
if (isset($_POST[submit])){
//Wegen PHP- register_globals="on" / "off"
$text = $_POST[text];
//Folgende Patter überprüft ob die PLZ 5 Ziffer hat.
$text = preg_replace("/^[0-9]{5}$/");
echo "$text \n <br /><br /><br />";
echo "<a href=\"$_SERVER[PHP_SELF]\">Zurück zum Formular</a> \n <br />";
} else {
?>
<form action="plz.php" method="post">
<input type="text" name="text" /><br />
<input type="submit" value="Abschicken" name="submit"/>
<?php
}
?>
</form>
</body>
</html>
Es erscheint:
Warning: Wrong parameter count for preg_replace() in C:\xampplite\htdocs\regulaere ausdruecke\plz.php on line 17
An was kann das liegen?
Folgendes ging auch nicht:
- Code: Select all
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/transitional.dtd">
<html>
<head>
<title>E-Mail Check</title>
</head>
<body>
<?php
if (isset($_POST[submit])){
//Wegen PHP- register_globals="on" / "off"
$text = $_POST[text];
//Folgende Patter überprüft ob die E-Mailadressen korrekt ist.
$text = preg_replace("/[\.a-z0-9_-]+(\.[a-z0-9_-]+)*@([0-9a-z][0-9a-z]*[0-9a-z]\.)+([a-z]{2,4}|museum)/i/");
echo "$text \n <br /><br /><br />";
echo "<a href=\"$_SERVER[PHP_SELF]\">Zurück zum Formular</a> \n <br />";
} else {
?>
<form action="plz.php" method="post">
<input type="text" name="text" /><br />
<input type="submit" value="Abschicken" name="submit"/>
<?php
}
?>
</form>
</body>
</html>
Da kommt die gleiche Fehlermeldung.