大家好。我正在尝试读取一个 XML 文件,更改值并将其保存回来,所有这些都是通过 Laravel SSH 完成的
$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"
));
});
<note>
<to>Tove</to>
<from>Jani</from>
<age>50</age>
</note>
代码的问题是保存的文件是空的(里面什么都没有)。
- 使用 ssh key 建立连接并以 root 身份登录。
- 系统为Ubuntu 16.04.02 x64
- Laravel v5.4.22
- Laravelcollective/remote v5.4.0 (ssh 包)
最佳答案
我已经设法使用 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"
));
});
关于php - Laravel SSH 读写文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43954850/