通过输入可编辑preg_match_all

时间:2013-04-13 18:43:53

标签: php preg-match-all

您好我如何制作preg_match_all可编辑

preg_match_all('{(".$limit.")}i',$content,$matches);

<input type="text" size="30" name="limit" id="limit" value="" />

所以,如果我想搜索不同的字符串,我只需要输入输入表单?

2 个答案:

答案 0 :(得分:1)

  1. 您对表达式字符串
  2. 使用了错误的引号
  3. 你以错误的方式使用表达式分隔符,它必须是一个字符(不是'{'和'}')。
  4. 您应该使用preg_quote()作为转义,以转义正则表达式语法使用的特殊字符。
  5. 如果您尚未完成,请从$limit超全局数组中检索$_GET
  6. if (isset($_GET['limit'])) {
      $limit = preg_quote($_GET['limit'], '%');
      preg_match_all('%('.$limit.')%i',$content,$matches);
    }
    

    你还需要一个提交价值的表格 - 正如HamZa在评论中所说:

    <form action="this-script.php" method="get">
      <input type="text" size="30" name="limit" id="limit" value="" />
    </form>
    

答案 1 :(得分:0)

如果您经常在模式中使用用户输入,则可以看看T-Regx tool,其中包含模式构建器!并且还有自动定界符

$pattern = Pattern::inject('%(@limit)%', [
    'limit' => $_GET['limit']
]);

$pattern->match($string)->forEach(function (Match $m) {
    // do something with $m
});

Pattern::inject()(或Pattern::prepare())将引用任何用户输入。