0
以下命令都在服務器(./*)上的字符串,並檢查所有的文件,看是否在任何文件存在於所述字符串,則將該數據輸出到> grep_results.txt:PHP了shell_exec具有可變
$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);
我如何通過$字符串$命令?
在頂部(與硬編碼字符串)的代碼,當你從瀏覽器中調用它正常工作,已經? 'grep_results.txt'必須由Web服務器用戶寫入才能工作,並且在將''string'傳遞給'$ command'之前,絕對必須調用'$ string'上的'escapeshellarg()'。 http://php.net/manual/en/function.escapeshellarg.php –