从字符串中获取变量

时间:2018-03-26 11:17:16

标签: php preg-match preg-match-all

对于CodeIgniter上的模块化应用程序,我想使用以下代码来使HMVC正常工作:

{modulename limit="x" start="y" template="z"}

我试图使用以下内容:

preg_match_all('/{module}/', $page, $match)
preg_match_all('/{module(\S+)}/', $page, $match))

有没有人有解决方案?

1 个答案:

答案 0 :(得分:0)

如果我了解您想要获取limit, start, template变量的值。

您可以使用

获取所有值
    $x = '{modulename limit="x" start="y" template="z"}';
    preg_match_all('/(?<=\")\w+(?=\")/', $x, $matches);
    var_dump($matches);

您将获得输出

array(1) {
  [0]=>
  array(3) {
    [0]=>
    string(1) "x"
    [1]=>
    string(1) "y"
    [2]=>
    string(1) "z"
  }
}

第一个正向lookbehind将匹配前面有\w+的所有",第二个正向前瞻匹配所有后跟\w+的{​​{1}}。所以你的所有值都必须在双引号之间。

请查看有关Regular-Expressions Lookahead and Lookbehind的文档。