PHP启动.bat然后重定向

时间:2014-01-11 23:11:00

标签: php cmd

我有这个脚本来启动一个bat文件,但是它确实启动它只是崩溃了网页,我需要脚本在.bat启动后将用户重定向到一个完成的页面...

<?php

exec('c:\WINDOWS\system32\cmd.exe /c START C:\Users\Administrator\Desktop\VGBR\steamapps\common\GarrysModDS\Start.bat');

?>

<?php
$var="Start";
echo "Starting...";
echo $var;
header("Location: done.php");
exit;
?>

这是我到目前为止所得到的......

1 个答案:

答案 0 :(得分:0)

原因是当您使用echo函数PHP HAVE 向客户端发送标头时,任何后续标头都将 NOT 发送。

要更正您要么删除echoes(因为客户端看不到它们),要么删除header()并添加执行重定向的JavaScript。

修改
正如 Dave Chen 所述,不应该<?PHP标记之外的脚本之间有空格,因为它被发送到客户端(再次,带标题)

要做你要问的事,那就按照这样做:

<?php
exec('c:\WINDOWS\system32\cmd.exe /c START C:\Users\Administrator\Desktop\VGBR\steamapps\common\GarrysModDS\Start.bat > NUL');

header('Location: /done.php');
die();
?>

编辑2
如果PHP继续挂起,那是因为它正在等待.bat app返回一些东西。在这种情况下,请检查以下StackOverflow问题:
php exec command (or similar) to not wait for result
Running a PHP "exec()" in the background on Windows?