пытаясь реализовать autosuggest с помощью 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 я использовал charachrecter, например, A, работает отлично. Однако я не могу принять динамический символ в качестве входа в awk. что-то не так с. $ input. не могу понять, как написать escape-символы
заранее спасибо
Очередь
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
параметры как команды оболочки, без какой-либо проверки безопасности. Пользователи могут и быстро найдут способ использовать этот недостаток …
Других решений пока нет …