0

在文件的源代码中,我有几个“钩子”,我想从我的 PHP 脚本中应用一些额外的变量。钩子应用于源,如:@include_plugin PluginName@

我可以使用preg_match_all('/@include_plugin .*@/', $sSource, $aPlugins); 此正则表达式找到它们,它为我提供了我想要的匹配项,但是是否也可以直接获取PluginName而不是我的解决方案,然后必须将子字符串应用于匹配项?

4

1 回答 1

2

您需要在正则表达式中使用捕获组。这些是通过在模式的一部分周围放置括号来创建的。

所以我们把你.*变成(.*)

preg_match_all('/@include_plugin (.*)@/', $sSource, $aPlugins);
var_dump($aPlugins);

检查 var 转储的输出,索引 1 处将有一个仅包含插件名称的新子数组。

array(2) {
  [0]=>
  array(1) {
    [0]=>
    string(27) "@include_plugin PluginName@"
  }
  [1]=>
  array(1) {
    [0]=>
    string(10) "PluginName"
  }
}
于 2012-08-10T09:04:25.010 回答