1. 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'));
}
2. 如何讓exec自己運行,php頁面繼續運行
在php中,如果出現exec();那麼php是先運行完exec中的外部命令,然後繼續執行接下來的php語句的。有什麼辦法讓exec自己在那運行,php語句不等待,自己運行下去,讓瀏覽器不用等待。謝謝。
Note:
如何程序使用此函數啟動,為了能保持在後台運行,此程序必須將輸出重定向到文件或其它輸出流。 否則會導致 PHP 掛起,直至程序執行結束。
exec("命令 > null");
3. 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 參數。
4. 如何配置伺服器的php,使得能成功運行exec函數
如果是命令行使用的話,直接運行即可,如果是apache使用的話,需要重啟apache,如果是nginx配合使用的話,需要重啟php-fpm,exec函數執行命令並不需要安全目錄,只要有執行許可權就可以執行。
5. php生成pdf 下載 同步還是非同步
同步
首先需要安裝wkhtmltopdf這個軟體 需要執行shell_exec函數的php文件和安裝的wkhtmltopdf.exe可執行文件在同一目錄下,不然php找不到這個執行文件
shell_exec("wkhtmltopdf.exe --page-size A4 --outline 網頁地址 pdf文件名");
--page-size 以A4紙的尺寸顯示pdf內容
--outline 顯示目錄(網頁中h1,h2來定)
網頁地址 需要轉成pdf的網頁地址
pdf文件名 生成pdf的文件名,可以使用絕對路徑
6. 怎樣在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);
?>
7. php 中exec()函數是同步還是非同步的比如命令需要10s那麼,在其之後的語句是不是要等10s以後才能執行
沒錯,是這樣。你可以認為是同步的,其實本身它們就是同一個進程。
8. PHP exec怎麼用,裡面的3個參數潞河設置
1、執行外部程序。語法: string exec(string command, string [array], int [return_var]);返回值: 字元串函數種類: 操作系統與環境內容說明本函數執行輸入 command 的外部程序或外部指令。它的返回字元串只是外部程序執行後返回的最後一行;若需要完整的返回字元串,可以使用 PassThru() 這個函數。要是參數 array 存在,command 會將 array 加到參數中執行,若不欲 array 被處理,可以在執行 exec() 之前呼叫 unset()。若是 return_var 跟 array 二個參數都存在,則執行 command 之後的狀態會填入 return_var 中。值的注意的是若需要處理使用者輸入的資料,而又要防止使用者耍花招破解系統,則可以使用 EscapeShellCmd()。相關函數:system() PassThru() popen() EscapeShellCmd()
9. php中的exec問題
exec是執行參數中的命令,本例中的:
rm是刪除文件的命令,rm -rf $counterFile表示刪除$counterFile以及它裡面的所有文件和目錄(如果是目錄的話)。
echo是顯示信息的命令,echo $num > $counterFile表示顯示$num的內容到文件$counterFile裡面。
10. PHP運行EXEC文件
可以,但需要系統許可權,和啟用PHP的exec函數支持,php配置默認是禁用的。
使用方法:
$str
=
exec("cmd
命令");
$str
返回執行命令後所輸出的字元。
詳細說明可以查詢php手冊