exec在PHP中无法正确执行

时间:2012-07-27 02:32:47

标签: php cmd

我正在使用PHP文件来运行cmd命令,但命令执行不正确,可能是什么原因?

我的php文件执行cmd命令:

<?php
exec("C:\wamp\php\php.exe -e C:\wamp\htdocs\Me\mail.php me@gmail.com you");
?>

mail.php文件:

<?php
$subject = "Please check out";
$headers = "From: chico@uniserveit.com\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);
?>

既没有创建文件也没有发送邮件,我认为命令没有正确执行,所以我该如何解决呢?

2 个答案:

答案 0 :(得分:0)

可能在您的配置中禁用了 exec()功能。

检查php.ini中的参数 disabled_function 并尝试关闭httpd.conf中的safemode php_admin_value safe_mode off

答案 1 :(得分:0)

在第一个示例中,您应该在传递给exec的字符串中使用/而不是\。 \用于转义字符,不能用作路径分隔符。如果你必须在字符串中有一个\,你必须将其转义,如“c:\\ abc \\ def”。你实际上试图执行“C:wampphpphp.exe -e C:wamphtdocsMemail.php me@gmail.com you”,这很可能无法执行。将第二个和第三个参数添加到exec(),然后检查第三个参数是否有错误返回值。

在第二位代码中,您创建的文件永远不会被引用。