带有变量的PHP shell_exec命令

时间:2016-03-29 01:36:04

标签: php var

以下采用字符串并检查服务器上的所有文件(./*)以查看所述字符串是否存在于任何文件中,然后将数据输出到> 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?

1 个答案:

答案 0 :(得分:0)

更新:

致Michael Berkowski(评论中),谢谢你,escapeshellarg做了伎俩。

现在的工作代码是:

$string = $_POST['SearchString'];

$searchstring = escapeshellarg($string);

$command = 'grep -ri "'.$searchstring.'" ./* > grep_results.txt';

shell_exec($command);