我有这个脚本来启动一个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;
?>
这是我到目前为止所得到的......
答案 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?