首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >执行PHP节点后的PHP执行命令

执行PHP节点后的PHP执行命令
EN

Stack Overflow用户
提问于 2016-07-09 18:33:33
回答 1查看 73关注 0票数 0

我想在执行第一个命令之后执行第二个命令,但它对我不起作用.这是我的代码

代码语言:javascript
复制
<?php
include('Net/SSH2.php');
$owed = $_POST["value"];
$server = "127.0.0.1";
$username = "xxx";
$password = "xxx";
$command1 = "cd /var/www/ww && node bot.js";

$ssh = new Net_SSH2($server);
if (!$ssh->login($username, $password)) {
    exit('Login Failed');
}
echo $ssh->exec($command1);

这一切都很好,一直工作到这一步,但是..。问题是在执行节点之后,请求值来执行任务,在脚本的第一个索引上获得值,但是我不知道如何在第一个命令之后执行它。

//编辑

我需要传递$_POST"value“作为第二个命令。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-09 18:43:51

正如文档所说,您可以在本例中使用write

5.1.4.read() / write() vs. exec() write()将输入(例如命令)发送到服务器。通常,操作系统在按下Enter键之前不会处理命令,因此要模仿这一点,您需要发送一个"\n“、"\r”或“\r”,具体取决于您连接到的服务器所使用的操作系统。注意,尽管输入很可能是一个命令,但它并不一定是一个命令。 您发送的内容将被任何期望用户输入的文本解析。因此,如果输入" passwd \n“,输入(直到输入"\n”)将由passwd解析为新密码或现有密码,而不是作为shell运行的命令。

,所以你可能想要这样的东西:

代码语言:javascript
复制
<?php

    include('Net/SSH2.php');
    $owed = $_POST["value"];
    $server = "127.0.0.1";
    $username = "xxx";
    $password = "xxx";

    $ssh = new Net_SSH2($server);
    if (!$ssh->login($username, $password)) {
        exit('Login Failed');
    }

    echo $ssh->exec('cd /var/www/www');
    echo $ssh->exec('node bot.js');
    echo $ssh->write($owed);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38285034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档