爱编码的Farmer

  • 主页
  • 编程开发
  • 运营维护
  • 随心笔记
  • 新闻联播
  • 留言页面
  • 打赏
爱编码的Farmer
我是Farmer,我为自己代言
  1. 首页
  2. 编程开发
  3. 开发
  4. 正文

php ssh2扩展实现一个交互式的终端---思路

2018年12月30日 3043点热度 0人点赞 3条评论

想实现一个web的终端,最开始用的ssh2这个扩展,但是结果只能用exec执行命令,不能达到我想要的效果,我想要的是交互式的终端,之后又找了一个php的包phpseclib用里面的ssh2协议用得很迷...不知道为什么read总是要等很长一段时间,不知道是不是我的姿势不对,暂时的放弃,然后仔细看了一下官网的ss2扩展文档,发现有一个ssh2_shell命令,于是开始研究,感觉可以达到交互式终端的效果,如果再不行...可能得去实现ssh协议了....贴出代码如下

有一点不足的地方就是不能使用select方法来,本来想用swoole_event_add加入监听的=_=,不过现在这样..大不了开一个进程来处理吧...或者再看看还有没有什么其他不错的方法

$connection = ssh2_connect('localhost', 22);
if (!ssh2_auth_password($connection, 'user', '***')) {
    die('error user');
}

$stdio_stream = ssh2_shell($connection);
stream_set_blocking($stdio_stream, true);
if (pcntl_fork()) {
    while ($char = fgetc(STDIN)) {
        fwrite($stdio_stream, $char);
    }
} else {
    while (true) {
        echo(fread($stdio_stream, 10000));
    }
}
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2018年12月30日

Farmer

不敢说什么

打赏 点赞
< 上一篇
下一篇 >

文章评论

  • 头像
    阿鑫

    现在怎么样了? :redface: :redface:

    2019年9月28日
    回复
  • 头像
    ideasource

    现在解决的怎么样了?

    2019年1月9日
    回复
    • Farmer
      Farmer

      @ideasource 还是选择用多进程的方式来处理了

      2019年1月9日
      回复
  • 取消回复

    Farmer

    不敢说什么

    最新 热点 随机
    最新 热点 随机
    [油猴脚本开发指南]脚本自动化之模拟点击和表单填写 [油猴脚本开发指南]第一个脚本-HelloWorld Windows装杯且实用的终端配置 - WindowsTerminal+PowerShell优化 github不完全指南 iPad编程学习环境---vscode web版本搭建 从根本上解决鼠标手,chrome 插件"Vimium"分享
    [油猴脚本开发指南]第一个脚本-HelloWorld 教你用PHP做个性图片签名 github actions 入门 We love open source 成绩管理系统 微服务架构本地尝试(四)-容器 PHP扩展开发(一)---骨架
    最近评论
    头像
    发布于 4 个月前(12月24日) 感谢大佬开发的智慧树插件
    头像
    发布于 11 个月前(05月25日) 请问您之前写超星文档用的是什么程序啊?
    头像
    发布于 11 个月前(05月23日) 哈哈哈,同是程序员,从你的cxmooc-tools来的,踩踩
    头像
    发布于 11 个月前(05月23日) 哈哈哈哈哈,同是程序员,踩踩,从你的cxmooc-tools来的
    头像
    发布于 11 个月前(05月09日) dalao c语言应该从什么开始学起 我们老师讲的我很懵 前脚一个 printf 后脚就让我们开始...
    友情链接
    • Junzhou
    • mathor
    • 仙桃小白菜
    • 油猴中文网
    • 青山志
    RSS
    • RSS

    COPYRIGHT © 2021 爱编码的Farmer. ALL RIGHTS RESERVED.

    THEME KRATOS MADE BY VTROIS

    湘ICP备19008073号