使用preg_split使用正则表达式获取另一个值

时间:2016-11-11 22:07:16

标签: php regex preg-split

我遇到以下问题困住了几个小时。我有自己的cms,我使用短代码[plugin-pluginname]来激活插件。现在我想在该短代码中分配一个组,该组稍后在包含一次文件中用作查询的变量,以选择该特定的id。

目前,我收到了以下代码:

$regex = '~\[plugin-([^]]+)]~';
        $content_one = htmlspecialchars_decode($page['content_one']);
        $parts = preg_split($regex, $content_one, -1, PREG_SPLIT_DELIM_CAPTURE);

        foreach($parts as $k => $v){
            if($k & 1)
                include_once('plugins/'.$v.'/'.$v.'.php');
            else
                echo htmlspecialchars_decode($v);
        }

这会检查[plugin-testplugin]的位置(以testplugin为例)并包含该特定文件。现在我想编写类似[plugin-testplugin 2]的内容,其中不仅上面的代码当然仍然有效,而且数字存储在一个变量中,可以使用查询SELECT * FROM 'database' WHERE 'group' = "'.$var_from_shortcode.'"

欢迎任何帮助和解决方法来解决这个问题!

1 个答案:

答案 0 :(得分:0)

您可以使用this regex然后在变量中保存第1组值吗?

\[plugin-[A-Za-z ]*(\d+)?\]

或者使用此正则表达式查找[plugin-testplugin 2],然后使用\d*查找其中的数字?