『壹』 php exec()
php的exec函數用法如下:
exec — 執行一個外部程序
stringexec(string$command[,array&$output[,int&$return_var]])
exec() 執行command 參數所指定的命令。
command:要執行的命令。
output:如果提供了 output 參數,那麼會用命令執行的輸出填充此數組,每行輸出填充數組中的一個元素。數組中的數據不包含行尾的空白字元,例如 字元
請注意,如果數組中已經包含了部分元素,exec()函數會在數組末尾追加內容。
如果不想在數組末尾進行追加,請在傳入 exec() 函數之前對數組使用 unset() 函數進行重置。
return_var:如果同時提供output和return_var 參數,命令執行後的返回狀態會被寫入到此變數。
返回值:
命令執行結果的最後一行內容。
如果需要獲取未經處理的全部輸出數據,請使用 passthru() 函數。
如果想要獲取命令的輸出內容,請確保使用 output 參數。
『貳』 PHP.ini開啟EXEC函數怎麼開啟
1、首先打開php.ini文件,一般默認放在C盤windows目錄下。
『叄』 PHP運行EXEC文件
可以,但需要系統許可權,和啟用PHP的exec函數支持,php配置默認是禁用的。
使用方法:
$str
=
exec("cmd
命令");
$str
返回執行命令後所輸出的字元。
詳細說明可以查詢php手冊
『肆』 PHP 調用 exec命令 所有返回值的含義
exec()返回最後一行結果
$command 外部命令
$str_res 可選,每行執行的結果組成的數組
$str_r 可選,執行的狀態,0為成功,1為失敗
『伍』 如何配置伺服器的php,使得能成功運行exec函數
如果是命令行使用的話,直接運行即可,如果是apache使用的話,需要重啟apache,如果是nginx配合使用的話,需要重啟php-fpm,exec函數執行命令並不需要安全目錄,只要有執行許可權就可以執行。
『陸』 怎麼用php命令執行php代碼
PHP執行命令的四種方法
方法一:使用exec函數執行系統外部命令
原型:function exec(string $command,array[optional] $output,int[optional]
$return_value)
<?
exec("dir",$outPut);
print_r($outPut);
?>
說明:列出和PHP執行文件同級目錄下的所有目錄及文件信息。
知識點:exec執行系統外部命令時不會輸出結果,而是返回結果的最後一行,如果你想得到結果你可以使用第二個參數,讓其輸出到指定的數組,此數組一個記錄代表輸出的一行,即如果輸出結果有20行,則這個數組就有20條記錄,所以如果你需要反復輸出調用不同系統外部命令的結果,你最好在輸出每一條系統外部命令結果時清空這個數組,以防混亂。第三個參數用來取得命令執行的狀態碼,通常執行成功都是返回0。
方法二:使用system函數執行系統外部命令
原型:function system(string $command,int[optional] $return_value)
1
2
3
<?
system("dir");
?>
知識點:system和exec的區別在於system在執行系統外部命令時,直接將結果輸出到游覽器,如果執行命令成功則返回true,否則返回false。第二個參數與exec第三個參數含義一樣。
方法三:使用函數passthru執行系統外部命令
原型:function passthru(string $command,int[optional] $return_value)
知識點:passthru與system的區別,passthru直接將結果輸出到游覽器,不返回任何值,且其可以輸出二進制,比如圖像數據。
方法四:反撇號`(和~在同一個鍵)執行系統外部命令
1
2
3
<?
echo `dir`;
?>
知識點:在使用這種方法執行系統外部命令時,你要確保shell_exec函數可用,否則是無法使用這種反撇號執行系統外部命令的。
『柒』 PHP 調用 exec命令 所有返回值的含義
exec
用來執行外部程序
語法: string exec(string command, string [array], int [return_var]);
返回值:字元串
函數種類:操作系統與環境
內容說明:
本函數執行輸入 command 的外部程序或外部指令。
它的返回字元串只是外部程序執行後返回的最後一行;
若需要完整的返回字元串,可以使用 PassThru() 這個函數。
要是參數 array 存在,command 會將 array 加到參數中執行
若不欲 array 被處理,可以在執行 exec() 之前呼叫 unset()。
若是 return_var 跟 array 二個參數都存在
則執行 command 之後的狀態會填入 return_var 中。
值的注意的是若需要處理使用者輸入的資料,而又要防止使用者耍花招破解系統,則可以使用 EscapeShellCmd()。
『捌』 怎樣在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);
?>
『玖』 PHP exec() 運行另一個php文件,不等待返回值
可以後台運行,但是建議使用popen和pclose代替exec。同時需要注意php是否添加了環境變數。
<?php
//windows和linux下後台執行方式
$cmd='php2.php';
if(strtoupper(substr(PHP_OS,0,3))=='WIN')
{
pclose(popen('start/B'.$cmd,'r'));
}else
{
pclose(popen($cmd.'>/dev/null&','r'));
}