2013-01-17 123 views
0

我试图从Windows计算机运行此命令,但我无法让它工作。当我将它输入命令提示符时,该命令完美工作,但在执行PHP脚本时不起作用。shell_exec不在php中执行命令

$command = '"C:\Program Files (x86)\WinSCP\winscp.exe" /console /command "open client" "cd /var/www/html/reports" "put C:\wamp\www\client\test.php" "exit"'; 
shell_exec($command); 
+0

你确定,该方法不被禁止吗?你确定,参数是否正确转义? –

+1

您是否正在运行Apache或您作为服务使用的任何服务器?如果您在Windows上,除非服务器具有特殊权限或作为正常进程打开,否则服务器将被禁止与系统交互。 –

+0

检查'safe_mode'和'disable_functions'。 http://php.net/manual/en/ini.core.php 另外,从一个命令开始(例如运行winscp)。 –

回答

1

尝试使用exec()它可以帮助您进行调试。

<?php 
$command = '"C:\Program Files (x86)\WinSCP\winscp.exe" /console /command "open client" "cd /var/www/html/reports" "put C:\wamp\www\client\test.php" "exit"'; 
$cmd = exec($command, $arr, $opt); 

// Output info run from the command: 
var_dump($cmd, $arr, $opt); 
+0

我从这里得到了这个ouput:string(0)“”array(0){} int(1) – Ethan

+0

看起来你正在运行多个命令,你需要将它们分开,我不记得如何,但我认为它是用'&'命令:http://superuser.com/questions/62850/execute-multiple-commands-with-1-line-in -Windows-命令行 –