将php变量用于awk-regex命令


use php variables for awk regex commands

尝试使用php实现自动建议。使用awk 生成的自动建议列表

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

代替$input来测试autosuggest,我使用了一个字符,例如a,效果很好。然而,我不能将动态字符作为awk的输入。有点不对劲$输入不知道如何写转义字符

提前感谢

转动

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命令,而不进行某种安全检查。用户可以并且将很快找到利用该漏洞的方法。。。