簡體   English   中英

使用 PHP 執行外部應用程序

[英]Execute external application with PHP

我有一個 linux 命令行,需要通過 PHP 或 Javascript(首選 PHP)執行。

命令是keygen AB3554C1D1971DB7 \pc_code 365

但是,我想用 $pccode 之類的字符串替換\pc_code ,用戶在其中輸入生成的 PC 代碼。 這是一個合法的項目,但程序的創建者給我提供了幫助。

你可以使用shell_exec()

$cmd = sprintf("keygen AB3554C1D1971DB7 %s 365", 
               escapeshellarg($pccode));
$result = shell_exec($cmd);

每當您執行外部命令時,您都必須非常小心以避免命令注入。 您可以使用escapeshellarg()來防止這種情況。

看看執行

可能是這個程序寫得不好,將它的信息輸出到 stderr 而不是 stdout。 或者可能是它失敗並(正確地)將錯誤消息打印到 stderr。 在任何一種情況下,shell_exec 都不會捕獲 stderr。 但是,您應該能夠通過在命令末尾添加“ 2>&1 ”來捕獲 stderr ,即:

$result = shell_exec('keygen AB3554C1D1971DB7 \pc_code 365 2>&1');
echo '<pre>'.htmlspecialchars($result).'</pre>';

編輯:為了連續性,解決問題的是下面另一個答案的評論中提到的內容:

也許它不喜歡裸露的反斜杠? 你可以試試“ \\pc_code

從 JavaScript 執行 Linux 命令是不可能的(也不應該)。 假設您指的是在客戶端 Web 瀏覽器上運行的 JavaScript,則不會有任何安全模型可以保護人們免受惡意命令行訪問。 PHP 是另一回事。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM