我对正则表达式有所了解,但我真的想了解更多有关它的信息,现在我正在尝试创建一个函数来检测我的内容(来自数据库)中的所有{}并检查括号之间的内容。如果有一个带有名称的POST或GET(格式:POST:name或GET:name},我想用该值替换它们。
实施例: 当我有一个包含以下输入的表单时:
Name
Email
Message
然后在值属性中输入:{POST:Name}
然后,脚本必须检测{POST:Name}
并将其替换为$_POST['name']
中的字符串。我已经在Google上搜索过,但发现太多了,我不知道该用什么。
现在我有:
<?php
preg_match_all("/{(POST|GET):[.*](})/", $content, $matches, PREG_SET_ORDER);
foreach($matches AS $match)
{
if(isset($_POST[$match]))
$content = str_replace('{POST:'.$match, $_POST[$match], $content);
else
$content = str_replace('{GET:'.$match, $_GET[$match], $content);
}
?>
但这不起作用。
答案 0 :(得分:0)
你应该使用preg_replace,比str_replace更好。 如果你使用preg_replace,你不需要你的第一个条件,只能用一条指令做同样的代码。
http://fr2.php.net/preg_replace
<?php preg_replace('#{(POST|GET):(.*)}#','$_$1[$2]',$content); ?>
我的正则表达式可能是错误的,但这样的事情应该有用。