本文目錄一覽:
php中exec函數怎麼用
exec函數解析
exec語法: string exec(string command, string [array], int [return_var]);
exec返回值: 字元串
Exec參數說明
Command – 需要執行的命令
Array – 是輸出值
return_var –是返回值0或1,如果返回0則執行成功,返回1則執行失敗。
exec不成功,調試方案
一個技巧就是使用管道命令, 使用 21, 命令就會輸出shell執行時的錯誤到$output變數, 輸出該變數即可分析。
如:
exec('convert a.jpg b.jpg', $output, $return_val);
改為:
exec('convert a.jpg b.jpg 21', $output, $return_val);
print_r($output);
如何配置伺服器的php,使得能成功運行exec函數?
如果是命令行使用的話,直接運行即可,如果是apache使用的話,需要重啟apache,如果是nginx配合使用的話,需要重啟php-fpm,exec函數執行命令並不需要安全目錄,只要有執行許可權就可以執行。
PHP運行EXEC文件
可以,但需要系統許可權,和啟用PHP的exec函數支持,php配置默認是禁用的。
使用方法:
$str
=
exec("cmd
命令");
$str
返回執行命令後所輸出的字元。
詳細說明可以查詢php手冊
php exec()
php的exec函數用法如下:
exec — 執行一個外部程序
stringexec(string$command[,array$output[,int$return_var]])
exec() 執行command 參數所指定的命令。
command:要執行的命令。
output:如果提供了 output 參數,那麼會用命令執行的輸出填充此數組,每行輸出填充數組中的一個元素。數組中的數據不包含行尾的空白字元,例如 \n 字元
請注意,如果數組中已經包含了部分元素,exec()函數會在數組末尾追加內容。
如果不想在數組末尾進行追加,請在傳入 exec() 函數之前對數組使用 unset() 函數進行重置。
return_var:如果同時提供output和return_var 參數,命令執行後的返回狀態會被寫入到此變數。
返回值:
命令執行結果的最後一行內容。
如果需要獲取未經處理的全部輸出數據,請使用 passthru() 函數。
如果想要獲取命令的輸出內容,請確保使用 output 參數。
PHP怎麼運行EXEC文件?
在PHP中調用外部命令,可以用如下三種方法來實現:
1、用PHP提供的專門函數
(1)PHP提供共了3個專門的執行外部命令的函數:system(),exec(),passthru()。
(2)system() 原型:string system (string command [, int return_var])
(3)system()函數很其它語言中的差不多,它執行給定的命令,輸出和返回結果。第二個參數是可選的,用來得到命令執行後的狀態碼。
2、例子:
代碼如下:
?php
system("/usr/local/bin/webalizer/webalizer");
?
exec()
(1)原型:string exec (string command [, string array [, int return_var]]) exec
(2)()函數與system()類似,也執行給定的命令,但不輸出結果,而是返回結果的最後一行。雖然它只返回命令結果的最後一行,但用第二個參數array 可以得到完整的結果,方法是把結果逐行追加到array的結尾處。所以如果array不是空的,在調用之前最好用unset()最它清掉。只有指定了第二 個參數時,才可以用第三個參數,用來取得命令執行的狀態碼。
怎樣在php中執行exec命令
exec 或者 system 都可以調用cmd 的命令
直接上代碼:
複製代碼 代碼如下:
?php
/** 打開windows的計算器 */
exec('start C:WindowsSystem32calc.exe');
/** php生成windows的批處理文件後,再執行這個批處理文件*/
$filename = 't.bat';
$somecontent = 'C:
';
$somecontent .= 'cd "C:/Program Files/MySQL-Front"';
$somecontent .= '
start MySQL-Front.exe';
if (!$handle = fopen($filename, 'w')) {
echo "不能打開文件 $filename";
exit;
}
/** 首先要確定文件存在並且可寫*/
if (is_writable($filename)) {
/** 那就是當我們使用fwrite()的時候,$somecontent將要寫入的地方
將$somecontent寫入到我們打開的文件中 。*/
if (fwrite($handle, $somecontent) === FALSE) {
echo "不能寫入到文件 $filename";
exit;
}
echo "成功地將 $somecontent 寫入到文件 $filename";
fclose($handle);
} else {
echo "文件 $filename 不可寫";
}
exec($filename);
?
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/245016.html