2012-07-27 107 views
1

我正在使用PHP文件來運行cmd命令,但命令未正確執行,可能是什麼原因?exec在PHP中無法正確執行

我的PHP文件執行cmd命令:

<?php 
exec("C:\wamp\php\php.exe -e C:\wamp\htdocs\Me\mail.php [email protected] you"); 
?> 

的mail.php文件:

<?php 
$subject = "Please check out"; 
$headers = "From: [email protected]\n"; 

$content = "First check"; 
$fp = fopen("C:/xampp/htdocs/Me/checking.txt","wb"); 
fwrite($fp,$content); 
fclose($fp); 

mail($argv[0], $subject, $argv[1], $headers); 
?> 

既不創建文件或郵件被髮送,我認爲該命令沒有被執行正確,那我該如何解決呢?

回答

0

也許函數exec()在您的配置中被禁用。

檢查PARAM disabled_function在你的php.ini,並試圖關閉安全模式在httpd.conf php_admin_value safe_mode設置關閉

+0

在disabled_function中未禁用exec。而我無法在httpd.conf文件中找到php_admin_value – Conrad 2012-07-27 07:08:13

0

在你第一個例子中,你應該使用/傳遞給exec字符串中代替 \。 \用於轉義字符,不會用作路徑分隔符。如果在字符串中必須有\,則必須將其轉義,如「c:\\ abc \\ def」中所示。你實際上試圖執行「C:wampphpphp.exe -e C:wamphtdocsMemail.php [email protected]你」,這很可能無法執行。將第二個和第三個參數添加到exec(),然後檢查第三個錯誤返回值。

在第二位代碼中,您創建的文件不會被引用。

+0

所以你的意思是我應該使用\\而不是\? – Conrad 2012-07-27 06:54:30

+0

我改變它像這個exec(「C:/wamp/php/php.exe -e C:/wamp/htdocs/Me/mail.php [email protected]你」);但仍然沒有發送郵件並且未創建txt文件。 – Conrad 2012-07-27 07:02:12

+0

既然你是在一個窗口框中,那可能是最好的選擇(是的)。 – walrii 2012-07-27 07:02:45