残存的影子 2022-05-31 12:16 采纳率: 57.9%
浏览 56
已结题

求网站HTML/PHP代码,最好是完整的

a:服务器
b:用户浏览器
b输入字符串(例如baidu.com)
b点击确定按钮
a创建cmd,编辑(例如创建baidu.com.cmd,文件内容为ping baidu.com -t)
a运行cmd,n分钟后关闭(例如运行baidu.com.cmd,5分钟后关闭该cmd)

  • 写回答

1条回答 默认 最新

  • CSDN专家-showbo 2022-05-31 12:50
    关注

    下面代码能执行cmd,但是会一直等待cmd的执行直到php脚本超时。。要停止cmd执行视乎无效

    <meta charset="utf-8"/>
    <?php
    set_time_limit(300);//设置超时时间5分钟
    $exe_command = 'C:\\Windows\\System32\\cmd.exe F:\\phpStudy\\root\\WWW\\script.cmd';
    $descriptorspec = array(
        0 => array("pipe", "r"),  // stdin
        1 => array("pipe", "w"),  // stdout -> we use this
        2 => array("pipe", "w")   // stderr 
    );
    $process = proc_open($exe_command, $descriptorspec, $pipes);
    if (is_resource($process))
    {
        $count=0;
        $killed=false;
        while(!feof($pipes[1]))
        {
          sleep(1);
          $count++;
          if($count>=5){//原本想这样测试大于5s,用taskkill命令杀死批处理中执行的具体程序,视乎无效,会运行到脚本超时后自动关闭cmd。。
             exec("taskkill /f /im  cmd.exe");
             exec("taskkill /f /im  ping.exe");
             proc_close($process);
             $killed=true;//标记为
             break;
          }
          //下面为信息输出,不需要可以注释下面的3句
          $return_message = fgets($pipes[1], 1024);
          if (strlen($return_message) == 0) break;
          echo iconv('GBK','UTF-8',$return_message).'<br />';
        }
        if($killed==false)proc_close($process);
    }
    
    ?>
    
    
    
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月8日
  • 修改了问题 5月31日
  • 创建了问题 5月31日

悬赏问题

  • ¥15 c#转安卓 java html
  • ¥15 os.listdir文件路径找不到
  • ¥15 使用gojs3.0,如何在nodeDataArray设置好text的位置,再go.TextBlock alignment中进行相应的改变
  • ¥15 psfusion图像融合指标很低
  • ¥15 银河麒麟linux系统如何修改/etc/hosts权限为777
  • ¥50 医院HIS系统代码、逻辑学习
  • ¥30 docker离线安装mysql报错,如何解决?
  • ¥15 构建工单的总账影响在哪里查询或修改
  • ¥15 三个简单项目写完之后有重赏之后联系我
  • ¥15 python报内存不能read错误