Preg 替换为 mysql

发布于 2024-11-07 13:44:32 字数 672 浏览 1 评论 0原文

好的,这就是我所拥有的,但每当我这样做时,我都会返回数据库的第一条记录:

<?php
    function getInfo($id,$slot){
        if(!$id){ return '<b>Error</b> Id Not Returned. Please contact [email protected] for more information.'; }
        $mm = mysql_query("SELECT * FROM `users` WHERE `id`='".$id."'");
        $mma = mysql_fetch_assoc($mm);
        $p = $mma[$slot];
        return $p;
        //return $id; <- Debug (Returns ID given)
    }
$post = preg_replace("/\[CallName]([^]]+)\[\/CallName\]/", getInfo('\\1',"fullname"), $post);
?>

Okay so heres what I have but whenever I do this, I am returned with the first record of the database:

<?php
    function getInfo($id,$slot){
        if(!$id){ return '<b>Error</b> Id Not Returned. Please contact [email protected] for more information.'; }
        $mm = mysql_query("SELECT * FROM `users` WHERE `id`='".$id."'");
        $mma = mysql_fetch_assoc($mm);
        $p = $mma[$slot];
        return $p;
        //return $id; <- Debug (Returns ID given)
    }
$post = preg_replace("/\[CallName]([^]]+)\[\/CallName\]/", getInfo('\\1',"fullname"), $post);
?>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

败给现实 2024-11-14 13:44:32

我很惊讶你得到了任何返回的东西......你的 preg_replace 模式应该给你一个错误(你没有转义一些括号)。但无论如何,您不能像这样将捕获的组传递给您的函数。您必须使用“e”模式修饰符(请参阅 preg_replace 手册中的示例#4

I'm surprised you're getting anything returned...your preg_replace pattern should be giving you an error (you aren't escaping some of your brackets). But anyways, you can't pass a captured group to your function like that. You have to use the "e" pattern modifier (look at example #4 in the preg_replace manual

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文