導航:首頁 > 編程語言 > phpexecpath

phpexecpath

發布時間:2022-05-02 09:47:02

php怎麼運行DOS命令

你的意思應該是在DOS環境下運行php命令。
首先,將php加入到環境變數path中。
然後,執行:php 你要執行的命令。

⑵ 關於一個php exec函數的問題 bat文件能運行 但是接下來的字元串列印不出來

exec('c:/aaa/bbb.bat');
exec就等於你直接在cmd敲命令回車,你在cmd敲一下start
c:/aaa/bbb.bat
你會發現再彈出一個cmd窗口,這應該就是一直載入中的原因了
exec也可以把執行的結果全部返回到$output函數里(數組),$status是執行的狀態
0為成功
1為失敗
$a
=
exec("dir",$out,$status);
print_r($a);
print_r($out);
print_r($status);

⑶ php exec在linux執行 jdk沒一點反應

先說我認為最有可能的問題吧
請在後面加上這句exec("exit(0)");
這個是針對你指令里的 >

然後猜測下還有什麼可能的問題吧
usr/java/jdk1.6.0_23/bin/ 這個path是不是沒給access的許可權?可以試著把jar js文件復制到現在的目錄下,再試下看看問題是不是在這(不好意思,沒試過樓主這種寫法,java安裝好在哪裡用都是java就好了吧,為什麼特意給path呢)
順便糾正個小問題吧
$print_r($o);這個前面多了個$,還請樓主仔細檢查啊,不要最後發現是這么個粗心問題造成的
建議樓主試下
exec('java -version',$o);
print_r($o);
(因為我這里echo $JAVA_HOME是什麼也不顯示的..)
還有什麼呢
關於path還可以試下apache_lookup_uri
--------------------------------------------------------------------
那段我用的是給你看個例子,如果你用的話要改的...(不會直接用了吧orz)
你把yuicompressor-2.4.2.jar test.js 復制到現在的目錄下
代碼這樣
exec("java java -jar yuicompressor-2.4.2.jar --type js --charset utf-8 -v test.js > packed.js",$output,$status);
exec("exit(0)");
//chmod("packed.js",0644);//如果你需要的話在把這句加上
echo "<h4 style='color:#CC0000'>Error</h4>\n",
join("\n",$output);
還有樓主你不仔細看回答啊$print_r($o);這句你多打了$,是錯的,快點從代碼里刪除吧....

⑷ 菜鳥求助 396系統錯誤

PHP執行系統命令(簡介及方法)
在PHP中調用外部命令,可以用如下三種方法來實現:
方法一:用PHP提供的專門函數(四個):
PHP提供4個專門的執行外部命令的函數:exec(), system(), passthru(), shell_exec()
1)exec()
原型: string exec ( string $command [, array &$output [, int &$return_var ]] )
說明: exec執行系統外部命令時不會輸出結果,而是返回結果的最後一行。如果想得到結果,可以使用第二個參數,讓其輸出到指定的數組。此數組一個記錄代表輸出的一行。即如果輸出結果有20行,則這個數組就有20條記錄,所以如果需要反復輸出調用不同系統外部命令的結果,最好在輸出每一條系統外部命令結果時清空這個數組unset($output),以防混亂。第三個參數用來取得命令執行的狀態碼,通常執行成功都是返回0。
<?php
exec("dir",$output);
print_r($output);
?>
2)system()
原型: string system ( string $command [, int &$return_var ] )
說明: system和exec的區別在於,system在執行系統外部命令時,直接將結果輸出到游覽器,如果執行命令成功則返回true,否則返回false。第二個參數與exec第三個參數含義一樣。
<?php
system("pwd");
?>
3)passthru()
原型: void passthru ( string $command [, int &$return_var ] )
說明: passthru與system的區別,passthru直接將結果輸出到游覽器,不返回任何值,且其可以輸出二進制,比如圖像數據。第二個參數可選,是狀態碼。
<?php
header("Content-type:image/gif");
passthru("/usr/bin/ppm2tiff /usr/share/tk8.4/demos/images/teapot.ppm");
?>
4)shell_exec()
原型: string shell_exec ( string $cmd )
說明: 直接執行命令$cmd
<?php
$output = shell_exec('ls -lart');
echo "<pre>$output</pre>";
?>
方法二:反撇號
原型: 反撇號`(和~在同一個鍵)執行系統外部命令
說明: 在使用這種方法執行系統外部命令時,要確保shell_exec函數可用,否則是無法使用這種反撇號執行系統外部命令的。
<?php
echo `dir`;
?>
方法三:用popen()函數打開進程
原型: resource popen ( string $command , string $mode )
說明: 能夠和命令進行交互。之前介紹的方法只能簡單地執行命令,卻不能與命令交互。有時須向命令輸入一些東西,如在增加系統用戶時,要調用su來把當前用戶換到root用戶,而su命令必須要在命令行上輸入root的密碼。這種情況下,用之前提到的方法顯然是不行的。
popen( )函數打開一個進程管道來執行給定的命令,返回一個文件句柄,可以對它讀和寫。返回值和fopen()函數一樣,返回一個文件指針。除非使用的是單一的模式打開(讀or寫),否則必須使用pclose()函數關閉。該指針可以被fgets(),fgetss(),fwrite()調用。出錯時,返回FALSE。
<?php
error_reporting(E_ALL);
/* Add redirection so we can get stderr. */
$handle = popen('/path/to/executable 2>&1', 'r');
echo "'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);
?>
要考慮兩個問題:安全性和超時
1)安全性
由於PHP基本是用於WEB程序開發的,所以安全性成了人們考慮的一個重要方面 。於是PHP的設計者們給PHP加了一個門:安全模式。如果運行在安全模式下,那麼PHP腳本中將受 到如下四個方面的限制:
執行外部命令
在打開文件時有些限制
連接MySQL資料庫
基於HTTP的認證
在安全模式下,只有在特定目錄中的外部程序才可以被執行,對其它程序的調用將被拒絕。這個目錄可以在PhP.ini 文件中用safe_mode_exec_dir指令,或在編譯PHP是加上--with-exec-dir選項來指定。
當你使用這些函數來執行系統命令時,可以使用escapeshellcmd()和escapeshellarg()函數阻止用戶惡意在系統上執行命令,escapeshellcmd()針對的是執行的系統命令,而escapeshellarg()針對的是執行系統命令的參數。這兩個參數有點類似addslashes()的功能。
2)超時
當執行命令的返回結果非常龐大時,可以需要考慮將返回結果輸出至其他文件,再另行讀取文件,這樣可以顯著提高程序執行的效率。
如果要執行的命令要花費很長的時間,那麼應該把這個命令放到系統的後台去運行。但在默認情況下,象system()等函數要等到這個命令運行完才返回(實際上是在等命令的輸出結果),這肯定會引起PHP腳本的超時。解決的辦法是把命令的輸出重定向到另外一個文件或流中,如:
<?php
system("/usr/local/bin/order_proc > /tmp/abc ");
?>
但我調用的DOS命令需要幾分鍾的時間,而且為了批處理不能簡單的把結果寫入文件了事,要順序執行以下的程序
PHP設置了調用系統命令的時間限制,如果調用命令超時,雖然這個命令還是會被執行完,但PHP沒有得到返回值,被終止了(最可恨的是,不顯示任何錯誤)
修改php.ini並重啟Apache以允許系統命令運行更長的時間
max_execution_time = 600
我的程序是後台運行的,邏輯OK就成了

⑸ 我要在php中調用system或者exec執行一個程序

exec應該可以的,但是根據命令特徵你可能需要結合使用sleep方法,例如:
exec('D:');
sleep(1);
exec('cd D:\\path\\path', $cmd); //反斜杠要轉義哦
sleep(1);
if (! empty($cmd)) {
//$cmd 保存的是命令執行後的屏幕輸出,針對cd這條命令,如果有輸出肯定是錯誤信息

die($cmd);

}
exec('xelatex test.tex', $cmd);

⑹ 為什麼php 執行linux 命令不成功 shell_exec('unoconv -f pdf aa.doc')

我也剛遇到這個問題,不過我解決了。你試著載入PATH參數在命令行前邊,就是把 echo $PATH 的結果都添加到 unoconv -f pdf aa.doc 前面。

⑺ php(exec,system)執行外部程序問題!!

Fedora 12 是SELinux, Security Enhanced Liux. 安全性特別加強. 由你的描述來看, 應該是SELinux的許可權沒打開.
在/etc/selinux/config 中將 SELINUX=enforcing 改成 SELINUX=disable即可, 如此便將SELinux中強化安全的部分完全關閉, 但也就變得和一般linux沒多少差別. 改完後要reboot.
如果想要SELinux的安全功能又想達成你要的目的, 要參考 SELinux特有的chcon指令以及httpd_selinux語法.
例如,
chcon -R -t httpd_user_content_t /web

⑻ php exec("javac/java")問題

根據提示信息,你試一下下面的方法

1.配置操作系統的環境變數右擊我的電腦->屬性->高級選項卡->環境變數

配置系統環境變數的Path編輯它,給它加上一句

C:Javajdk1.6.0_21in(這是javac.exe文件在目錄);

這可以是解決javac不是內部或外部命令的問題;

2.配置環境變數classpath在最前面加一個.;

⑼ PHP調動linux底層命令問題 我想用exec代碼得到網路借口IP 掩碼

php許多底層指令在網路服務端會被屏蔽,如果需要使用可先咨詢一下網站服務提供商。 追問: 忘了說明了, win7 系統 虛擬機搭建ubuntu 伺服器搭建在ubuntu下的 我應該沒有禁用任何任何網路服務端 回答: 注意執行文件的路徑 補充: exec (PHP 3, PHP 4 ) exec -- Execute an external program Descriptionstring exec ( string command [, array output [, int return_var]]) exec() executes the given command, however it does not output anything. It simply returns the last line from the result of the command. If you need to execute a command and have all the data from the command passed directly back without any interference, use the passthru() function. If the output argument is present, then the specified array will be filled with every line of output from the command. Line endings, such as \n, are not included in this array. Note that if the array already contains some elements, exec() will append to the end of the array. If you do not want the function to append elements, call unset() on the array before passing it to exec() . If the return_var argument is present along with the output argument, then the return status of the executed command will be written to this variable. 例子1. An exec() example <?php // outputs the username that owns the running php/httpd process // (on a system with the "whoami" executable in the path) echo exec('whoami'); ?> 警告 If you are going to allow data coming from user input to be passed to this function, then you should be using escapeshellarg() or escapeshellcmd() to make sure that users cannot trick the system into executing arbitrary commands. 注: If you start a program using this function and want to leave it running in the background, you have to make sure that the output of that program is redirected to a file or some other output stream or else PHP will hang until the execution of the program ends. 注: When safe mode is enabled, you can only execute executables within the safe_mode_exec_dir. For practical reasons it is currently not allowed to have .. components in the path to the executable. 警告 With safe mode enabled, all words following the initial command string are treated as a single argument. Thus, echo y | echo x becomes echo "y | echo x". See also system() , passthru() , popen() , escapeshellcmd() , and the backtick operator. 追問: EXEC我已經看過無數次了 在手冊上 你說的文件路徑是指什麼? 我想知道 這個命令之所以什麼都沒有返回是不是 許可權問題? 追問: 謝謝 最後絕對路徑解決了問題 /sbin/ifconfig 謝啦

⑽ PHP中的安全模式是指的什麼

手冊如是說: 章 24. 安全模式目錄 被安全模式限制或屏蔽的函數 php 的安全模式是為了試圖解決共享伺服器(shared-server)安全問題而設立的。在結構上,試圖在 php 層上解決這個問題是不合理的,但修改 web 伺服器層和操作系統層顯得非常不現實。因此許多人,非凡是 isp,目前使用安全模式。 表格 24-1. 控制安全模式的設置選項有: 設置選項 默認值 safe_mode off safe_mode_gid 0 safe_mode_include_dir safe_mode_exec_dir 1 open_basedir safe_mode_allowed_env_vars php_ safe_mode_protected_env_vars ld_library_path disable_functions 當 safe_mode 設置為 on,php 將檢查當前腳本的擁有者是否和將被文件函數操作的文件的擁有者相匹配。例如: -rw-rw-r-- 1 rasmus rasmus 33 jul 1 19:20 script.php -rw-r--r-- 1 root root 1116 may 26 18:01 /etc/passwd 運行 script.php <?php 假如安全模式被激活,則將會導致以下錯誤: warning: safe mode restriction in effect. the script whose uid is 500 is not allowed to access /etc/passwd owned by uid 0 in /docroot/script.php on line 2 同時,或許會存在這樣的環境,在該環境下,寬松的 gid 檢查已經足夠,但嚴格的 uid 檢查反而是不適合的。您可以用 safe_mode_gid 選項來控制這種檢查。假如設置為 on 則進行寬松的 gid 檢查;設置為 off(默認值)則進行 uid 檢查。 除了 safe_mode 以外,假如您設置了 open_basedir 選項,則所有的文件操作將被限制在您指定的目錄下。例如: <directory /docroot php_admin_value open_basedir /docroot </directory 假如您在設置了 open_basedir 選項後運行同樣的 script.php,則其結果會是: warning: open_basedir restriction in effect. file is in wrong directory in /docroot/script.php on line 2 您也可以單獨地屏蔽某些函數。

閱讀全文

與phpexecpath相關的資料

熱點內容
grub2命令行 瀏覽:618
無法獲取加密卡信息 瀏覽:774
雲伺服器網卡充值 瀏覽:509
編程就是軟體 瀏覽:49
伺服器如何添加許可權 瀏覽:437
引用指針編程 瀏覽:851
手機加密日記本蘋果版下載 瀏覽:63
命令行括弧 瀏覽:176
java程序升級 瀏覽:490
排序演算法之插入類 瀏覽:227
gcccreate命令 瀏覽:73
海爾監控用什麼app 瀏覽:64
系統盤被壓縮開不了機 瀏覽:984
linuxredis30 瀏覽:541
狸窩pdf轉換器 瀏覽:696
ajax調用java後台 瀏覽:904
活塞式壓縮機常見故障 瀏覽:614
break演算法 瀏覽:731
換電池的app是什麼 瀏覽:771
單片機ad采樣快速發送電腦 瀏覽:22