我正在使用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);
?>
既没有创建文件也没有发送邮件,我认为命令没有正确执行,所以我该如何解决呢?
答案 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(),然后检查第三个参数是否有错误返回值。
在第二位代码中,您创建的文件永远不会被引用。