对 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 命令,而不进行某种安全检查。用户可以而且很快就会找到一种方法来利用该缺陷...
尝试使用 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 命令,而不进行某种安全检查。用户可以而且很快就会找到一种方法来利用该缺陷...