从Laravel 5.5中的SFTP服务器获取xml文件的内容

时间:2018-03-13 08:25:45

标签: php laravel sftp laravel-5.5

当我尝试从SFTP服务器获取xml文件时,我一直收到此错误:

file_get_contents():无法找到包装器“sftp” - 您是否忘记在配置PHP时启用它?

控制器中的代码:

    $host = 'xxxx';
    $username = 'xxxx';
    $password = 'xxxx';

    $sftp = new SFTP($host);

    if (!$sftp->login($username, $password)) {
        exit('Login Failed');
    }

    $abc = $sftp->get('/xxxx/xxxxx.xml'); (this line works fine but it 
    displays as normal text)

    $get=file_get_contents('sftp://xxxxxxxxxx/xxxx/xxxxx.xml');
    $arr = simplexml_load_string($get);
    print_r($arr); (while using these 3 lines I get that error)

如果有人可以帮助我,真的很感激,谢谢。

1 个答案:

答案 0 :(得分:0)

file_get_contents的包装器名称略有不同。尝试这样的事情:

file_get_contents('ssh2.sftp://user:pass@example.com:22/path/to/filename');

编辑:

查看文档。这是sftp的一部分。

https://secure.php.net/manual/en/function.ssh2-sftp.php

你可以在包装上看到(PECL ssh2> = 0.9.0)。所以你必须先安装模块。

https://pecl.php.net/package/ssh2

您使用的其他lib具有自己的实现。