如何使用PHP打开一个新的CMD窗口

时间:2014-11-13 12:29:28

标签: php windows cmd

在最后几天,我想用PHP编写代码来弹出一个 CMD 窗口,这个 CMD 窗口有一个像“ ping google.com”这样的命令“并处理它 我不需要PHP代码来读取结果,我只想让它运行它 我试过像

这样的东西
<?php     
exec('C:\Windows\System32/cmd.exe ping google.com');     
<?

但没有结果(我不知道它是否在后台运行)
所以我读了this,我找到了许多方法,但没有任何效果

我的操作系统是Windows并且非常感谢所有人:)

2 个答案:

答案 0 :(得分:10)

答案是 我搜索了很多找到它:))

<?
execInBackground('start cmd.exe @cmd /k "ping google.com"');



function execInBackground($cmd) { 
    if (substr(php_uname(), 0, 7) == "Windows"){ 
        pclose(popen("start /B ". $cmd, "r"));  
    } 
    else { 
        exec($cmd . " > /dev/null &");   
    } 
}
?>

答案 1 :(得分:0)

真正的命令提示符怎么样?这是一个允许PHP获取动态与真实cmd终端进行交互的项目。在此处获取:https://github.com/merlinthemagic/MTS

下载后,您只需使用以下代码:

//if you prefer Powershell, replace 'cmd' with 'powershell'
$shellObj    = \MTS\Factories::getDevices()->getLocalHost()->getShell('cmd');

$strCmd1   = 'ping -n 4 www.google.com';
$return1   = $shellObj->exeCmd($strCmd1);

返回将为您提供命令返回或来自cmd的错误,就像您坐在控制台一样。

此外,您可以针对$ shellObj发出任何您喜欢的命令,在PHP脚本的整个生命周期内都会维护该环境。因此,不是在脚本文件中捆绑命令,而是使用exeCmd()方法逐个发出命令,这样您也可以处理返回和任何异常。