对 awk 正则表达式命令使用 php 个变量

use php variables for awk regex commands

尝试使用 php 实现自动建议。使用 awk

生成的自动建议列表
    $input= $_GET["term"];
   $suggest=array();
   exec('awk \'BEGIN{FS=","}/.$input./{print ,"-cost-",}\' 3.txt',$suggest);
   echo json_encode($suggest)

代替 $input 来测试自动提示,我使用的是 charachrecter eg.A,工作正常。但是我无法将动态字符作为 awk 的输入。 .$input 出了点问题。无法弄清楚如何写转义字符

提前致谢

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

进入:

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

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

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