• 周蓬安.blog的博客—强国博客—人民网 2019-05-10
  • 紫光阁中共中央国家机关工作委员会 2019-05-10
  • 感触名家笔下的端午文化吃香粽原来可以这样文艺 2019-05-09
  • 追梦夺冠游行嘲讽詹皇 百万人面前穿订制T恤羞辱他 2019-04-27
  • 《瘟疫传说》:黑死病恐怖 姐弟在绝望中求生 2019-04-10
  • 陕西国防工业职业技术学院百名大学生志愿者敬老院慰问孤寡老人陕西国防工业职业技术学院百名大学生志愿者敬老院慰问-陕西教育新闻 2019-04-08
  • 西藏拉萨:新家园 新生活 2019-04-08
  • 尊重和保障宗教信仰自由的中国实践 2019-04-06
  • 一敬泯恩仇 俄罗斯队主帅这个动作太暖了 2019-03-20
  • 四大名著剧组首次同台忆往事 经典影视剧如何铸就? 2018-12-07
  • “天眼”凝望 探秘宇宙 2018-12-07
  • 0

    PHP 连接 sftp 并进行文件的上传和下载

    Posted by 撒得一地 on 2018年9月11日 in PHP笔记
    国外稳定加速器推荐    Express | Vypr

    最近碰到一个小需求,需要使用 PHP 连接 sftp,然后进行文件的上传和下载。

    稍微看了下,要支持 PHP 连接 sftp 需要安装 ssh2 拓展。下面介绍 linux 下 php 安装 ssh2 拓展的步骤。

    安装 ssh2 拓展

    在安装 ssh2 拓展前需要先安装 libssh2 ,具体安装步骤如下:

    	wget https://www.libssh2.org/download/libssh2-1.8.0.tar.gz
    	tar -zxvf libssh2-1.8.0.tar.gz
    	cd libssh2-1.8.0
    	./configure --prefix=/usr/local/libssh2
    	make
    	make install
    

    然后安装 ssh2 拓展 :

    wget https://pecl.php.net/get/ssh2-1.1.2.tgz
    	
    tar -zxvf ssh2-1.1.2.tgz 
    	
    cd ssh2-1.1.2
    	
    /home/php/local/webserver/php722/bin/phpize
    	
    ./configure --prefix=/usr/local/ssh2 --with-ssh2=/usr/local/libssh2 --with-php-config=/home/php/local/webserver/php722/bin/php-config
    	
    make
    	
    make install
    

    注意:上面的 /home/php/local/webserver/php722 改为你自己的 php 安装路径。

    然后编辑 php.ini 配置文件,加入如下内容:

    	extension=ssh2.so
    

    然后重启 php 即可生效。

    PHP 连接 sftp 并操作文件

    下面直接附上 php 连接 sftp,然后上传和下载文件的源代码,代码很简单,几行就搞定,具体代码如下:

    	<?php
    
    	$config = array("host"=>"192.168.2.1","user"=>"test","port"=>"17122","passwd"=>"test");
    
    	$conn = ssh2_connect($config['host'], $config['port']);
    
    	if (!ssh2_auth_password($conn, $config['user'], $config['passwd'])) {
    	    die('sftp 连接失败');
    	}
    
    	$remotFile = "/data/test.txt";
    	$localPath = '/home/php';
    	// 如果文件已存在就覆盖
    	$localFile = 'test.txt';
    	$localRealFile = $localPath . '/' . $localFile;
    
    	// 如果文件存在则删除,当然这里也可以根据需求进行修改
    	if (is_file($localRealFile)) {
    	unlink($localRealFile);
    	}
    
    	$sftp = ssh2_sftp($conn);
    	$resource = "ssh2.sftp://{$sftp}" . $remotFile;
    
    	//远程文件拷贝到本地
    	copy($resource, $localRealFile);
    
    	//本地上传文件到ftp
    	$remote = "/data/test123.txt";
    	$local = "/home/php/test123.txt";
    	copy($local,"ssh2.sftp://{$sftp}".$remote);
    

    注意:上面的文件路径和名称改为你自己的就可以了。

    你也可以对上面的代码完善一下,比如封装成类,更加方便的进行操作。

    本文地址://www.cfage.com/2831.html,转载请注明。

    上一篇:

    下一篇:已是最新文章

    相关推荐

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注

    8 + 3 = ?

    网站地图|广东快乐10分开奖直播

    Copyright © 2015-2019 广东快乐10分开奖直播 All rights reserved.
    闽ICP备15015576号-1,版权所有?psz.

  • 周蓬安.blog的博客—强国博客—人民网 2019-05-10
  • 紫光阁中共中央国家机关工作委员会 2019-05-10
  • 感触名家笔下的端午文化吃香粽原来可以这样文艺 2019-05-09
  • 追梦夺冠游行嘲讽詹皇 百万人面前穿订制T恤羞辱他 2019-04-27
  • 《瘟疫传说》:黑死病恐怖 姐弟在绝望中求生 2019-04-10
  • 陕西国防工业职业技术学院百名大学生志愿者敬老院慰问孤寡老人陕西国防工业职业技术学院百名大学生志愿者敬老院慰问-陕西教育新闻 2019-04-08
  • 西藏拉萨:新家园 新生活 2019-04-08
  • 尊重和保障宗教信仰自由的中国实践 2019-04-06
  • 一敬泯恩仇 俄罗斯队主帅这个动作太暖了 2019-03-20
  • 四大名著剧组首次同台忆往事 经典影视剧如何铸就? 2018-12-07
  • “天眼”凝望 探秘宇宙 2018-12-07
  • 北京快乐8开奖走势图 中彩网双色球预测 排列三012路走势图南方双彩网98 21点棋牌 山东时时彩开奖结果 双色球2017028开奖号码 新疆时时彩走势图三星基本走势 排列3走势图 新疆喜乐彩奖金分配 高频彩保本 中国福彩网20选5 梦见彩票中奖了去兑奖 天津时时彩怎么坐庄 所有福彩中奖号码 重庆时时彩5星玛走势图 天津快乐十分走势图