使用php变量来获取awk regex命令

时间:2015-03-02 19:54:05

标签: php regex awk

尝试使用php实现autosuggest。使用awk生成的自动提示列表

    $input= $_GET["term"];
   $suggest=array();
   exec('awk \'BEGIN{FS=","}/.$input./{print $2,"-cost-",$1}\' 3.txt',$suggest);
   echo json_encode($suggest)

代替$ input来测试autosuggest我正在使用charachrecter eg.A,工作正常。但是我无法将动态角色作为awk的输入。有些事情错了。$ input。无法弄清楚如何编写转义字符

提前致谢

1 个答案:

答案 0 :(得分:1)

打开

exec('awk \'BEGIN{FS=","}/.$input./{print $2,"-cost-",$1}\' 3.txt',$suggest);

分为:

exec('awk \'BEGIN{FS=","}/'.$input.'/{print $2,"-cost-",$1}\' 3.txt',$suggest);

您忘记终止第一个',这是必需的,因为您无法在单引号字符串中扩展变量。

附注:正如评论中所指出的,您可能需要三思而后行,盲目地接受GET参数作为shell命令,而不进行某种安全检查。用户可以而且很快就会找到利用这个漏洞的方法......