Laravel SSH读写文件

时间:2017-05-13 15:29:24

标签: php xml linux laravel ssh

问候所有人。我正在尝试通过Laravel SSH读取XML文件,更改值并将其保存回来

Cylinder
$commands[] = 'cat settings.xml';
SSH::run($commands, function($line)
{
    $xml = new SimpleXMLElement($line);
    $xml->age = 30;
    $xml = $xml->asXML();
    echo $xml; //it shows that age is changed to 30
    SSH::run(array(
        "echo  ~/demo/ $xml > settings.xml"
    ));
});

代码的问题是保存的文件是空的(里面没有任何内容)。

  • 建立连接,抛出ssh密钥并以root身份登录。
  • 系统为Ubuntu 16.04.02 x64
  • Laravel v5.4.22
  • Laravelcollective / remote v5.4.0(ssh package)

1 个答案:

答案 0 :(得分:0)

我已经设法使用 printf 来实现它。这是完整的工作代码

$commands[] = 'cat settings.xml';
SSH::run($commands, function($line)
{
    $xml = new SimpleXMLElement($line);
    $xml->age = 30;
    $xml = $xml->asXML();
    SSH::run(array(
        "printf '%s' '$xml'' > demo/settings.xml"
    ));
});