仅适用于PHP5.3.6的代码
可能重复:仅适用于PHP5.3.6的代码,php,version,Php,Version,可能重复: 我有以下代码: $bbcode = 'Users [user=1], [user=2] and [user=3] are friendly.'; echo preg_replace_callback( '#\[user=(\d+)\]#', function($matches) { $userName = getUserNameByUserId($matches[1]);
我有以下代码:
$bbcode = 'Users [user=1], [user=2] and [user=3] are friendly.';
echo preg_replace_callback(
'#\[user=(\d+)\]#',
function($matches) {
$userName = getUserNameByUserId($matches[1]);
return "<a href=user.php?id=$matches[1]>$userName</a>";
},
$bbcode
);
$bbcode='用户[user=1]、[user=2]和[user=3]是友好的';
回显preg_replace_回调(
“\[用户=(\d+)\]”,
函数($matches){
$userName=getUserNameByUserId($matches[1]);
返回“”;
},
$bbcode
);
而且它只适用于最后一个PHP版本。我想让它适用于PHP 5.2.17。是的,您可以:
function callback_function($matches) {
$userName = getUserNameByUserId($matches[1]);
return "<a href=user.php?id=$matches[1]>$userName</a>";
}
$bbcode = 'Users [user=1], [user=2] and [user=3] are friendly.';
echo preg_replace_callback(
'#\[user=(\d+)\]#',
'callback_function',
$bbcode
);
函数回调函数($matches){
$userName=getUserNameByUserId($matches[1]);
返回“”;
}
$bbcode='用户[user=1]、[user=2]和[user=3]是友好的。';
回显preg_replace_回调(
“\[用户=(\d+)\]”,
“回调函数”,
$bbcode
);
对于PHP5.2.x,函数的定义需要稍有不同,所以在调用pre_replace_回调之前先定义它。然后以字符串的形式提供它的名称
您可能还可以在希望运行代码的主机上升级PHP版本。PHP5.3比PHP5.2快得多,PHP5.2甚至不在使用状态。是的,您可以:
function callback_function($matches) {
$userName = getUserNameByUserId($matches[1]);
return "<a href=user.php?id=$matches[1]>$userName</a>";
}
$bbcode = 'Users [user=1], [user=2] and [user=3] are friendly.';
echo preg_replace_callback(
'#\[user=(\d+)\]#',
'callback_function',
$bbcode
);
函数回调函数($matches){
$userName=getUserNameByUserId($matches[1]);
返回“”;
}
$bbcode='用户[user=1]、[user=2]和[user=3]是友好的。';
回显preg_replace_回调(
“\[用户=(\d+)\]”,
“回调函数”,
$bbcode
);
对于PHP5.2.x,函数的定义需要稍有不同,所以在调用pre_replace_回调之前先定义它。然后以字符串的形式提供它的名称
您可能还可以在希望运行代码的主机上升级PHP版本。PHP5.3比PHP5.2快得多,PHP5.2甚至不在使用中。匿名函数在5.3版中引入,因此代码只能在5.3版和更高版本中使用。匿名函数在5.3版中引入,因此代码只能在5.3版和更高版本中使用。如果您需要更简单的构造:
echo "Users ";
echo "<a href=\"user.php?id=1\">" . getUserNameByUserId(1) . "</a>";
echo ", ";
echo "<a href=\"user.php?id=2\">" . getUserNameByUserId(2) . "</a>";
echo " and ";
echo "<a href=\"user.php?id=3\">" . getUserNameByUserId(3) . "</a>";
echo " are friendly.";
echo“用户”;
回声“;
回声“,”;
回声“;
呼应“和”;
回声“;
echo“我们很友好。”;
如果您想要更简单的结构:
echo "Users ";
echo "<a href=\"user.php?id=1\">" . getUserNameByUserId(1) . "</a>";
echo ", ";
echo "<a href=\"user.php?id=2\">" . getUserNameByUserId(2) . "</a>";
echo " and ";
echo "<a href=\"user.php?id=3\">" . getUserNameByUserId(3) . "</a>";
echo " are friendly.";
echo“用户”;
回声“;
回声“,”;
回声“;
呼应“和”;
回声“;
echo“我们很友好。”;
您可以使用preg\u replace的“e”选项作为替代选项
echo preg_replace('#\[user=(\d+)\]#e','"<a href=\"user.php?id=$1".getUserNameByUserId($1)."</a>"',$bbcode);
echo preg\u replace('\[user=(\d+)\]\e',””您可以使用preg\u replace的'e'选项作为替代选项
echo preg_replace('#\[user=(\d+)\]#e','"<a href=\"user.php?id=$1".getUserNameByUserId($1)."</a>"',$bbcode);
echo preg\u replace(“\\[user=(\d+)\]”e“不必在PHP 5.2上复制它,您当然还可以定义一个普通函数。在本例中,这似乎更合适。不必在PHP 5.2上复制它,您当然还可以定义一个普通函数。在本例中,这似乎更合适。好吧,这只是一个示例。我将其用于用户之间的私人消息。如果如果是1000个下午,我不能为每个人都写代码。好吧,那只是一个例子。我用这个来处理用户之间的私人消息。如果有1000个下午,我不能为每个人写代码。