以下采用字符串并检查服务器上的所有文件(./*)以查看所述字符串是否存在于任何文件中,然后将数据输出到> grep_results.txt:
$command = 'grep -ri "any string goes here" ./* > grep_results.txt';
shell_exec($command);
无论如何,如果可能的话,我想传递一个由以下html表单提交的变量:
<form id='searchform' action='/GREP.php' method='post'>
<div class='form-group'>
<input type='text' name='SearchString' placeholder='Search string...'>
<input type='submit' name='submit' value='Find' class='button'>
</div>
</form>
我开始这样做了:
$string = $_POST['SearchString'];
echo $string;
当然,提交的任何字符串都会被回复。
我被困的地方是,我试过这个,但是没有用:
$string = $_POST['SearchString'];
$command = 'grep -ri "'.$string.'" ./* > grep_results.txt';
shell_exec($command);
如何将$ string传递给$ command?
答案 0 :(得分:0)
更新:
致Michael Berkowski(评论中),谢谢你,escapeshellarg做了伎俩。
现在的工作代码是:
$string = $_POST['SearchString'];
$searchstring = escapeshellarg($string);
$command = 'grep -ri "'.$searchstring.'" ./* > grep_results.txt';
shell_exec($command);