当前位置: 移动技术网 > IT编程>开发语言>PHP > PHP的FTP学习(一)

PHP的FTP学习(一)

2019年05月19日  | 移动技术网IT编程  | 我要评论

柯南720,谭凯文,西陆文学网

by vikram vaswani
melonfire
november 07, 2000
   我们是一群php的忠实fans,我们因各种不同的原因使用它-web站点的开发,画图,数据库的联接等 -我们发现,它非常的友好,强大而且易于使用……  
你可能已经看到php是怎样被用于创建gif和jpeg图像,从数据库中动态的获取信息等等,但这只是冰山的一角---最新版本的php拥有着强大的文件传输功能。
在这篇教程里,我将向你展示ftp怎样通过http和ftp联接来传输文件,同时也会有一些简单的程序代码,跟我来吧!

首先,你应该知道php是通过http和ftp联接来传输文件的。通过http上传文件早在php3中就已经出现,现在,新的ftp函数已经在新的php版本中出现了!
开始之前,你需要确信你的php支持ftp,你可以通过以下代码查知:

--------------------------------------------------------------------------------
<?

phpinfo();

?>
--------------------------------------------------------------------------------
检查输出结果,有一“additional modules”区,这里列示了你的php支持的模块;如果你没发现ftp模块,你最好重新安装php,并添加ftp支持!

先让我们来看看一个典型的ftp任务是怎样完成的吧!
--------------------------------------------------------------------------------
$ ftp ftp.server.com
connected to ftp.server.com
220 server.com ftp server ready.
name (server:john): john
331 password required for john.
password:
230 user john logged in.
remote system type is unix.
using binary mode to transfer files.
ftp> ls
200 port command successful.
150 opening ascii mode data connection for /bin/ls.
drwxr-xr-x  5 john   users        3072 nov  2 11:03 .
drwxr-xr-x  88 root     root         2048 nov  1 23:26 ..
drwxr--r--   2 john   users        1024 oct  5 13:26 bin
drwx--x--x   8 john   users        1024 nov  2 10:59 public_html
drwxr--r--   4 john   users        1024 nov  2 11:26 tmp
-rw-r--r--   1 john   users     2941465 oct  9 17:21 data.zip
226 transfer complete.
ftp> bin
200 type set to i.
ftp> get data.zip
local: data.zip remote: data.zip
200 port command successful.
150 opening binary mode data connection for data.zip(2941465 bytes).
226 transfer complete.
ftp> bye
221 goodbye.
--------------------------------------------------------------------------------
你可以看到,进程明显被分为几段:联接(与ftp服务器建立联接)、验证(确定用户是否有权力进入系统)、传输(这里包括列目录,上传或下载文件)、取消联接。

使用php来ftp的步骤
建立一个php的ftp联接必须遵守以下基本步骤:打开一个联接 - 发出认证信息 - 使用php函数操纵目录和传输文件。
以下具体实现:
--------------------------------------------------------------------------------
<?

// 联接ftp服务器
$conn = ftp_connect("ftp.server.com");

// 使用username和password登录
ftp_login($conn, "john", "doe");

// 获取远端系统类型
ftp_systype($conn);

// 列示文件
$filelist = ftp_nlist($conn, ".");

// 下载文件
ftp_get($conn, "data.zip", "data.zip", ftp_binary);

// 关闭联接
ftp_quit($conn);

?>
--------------------------------------------------------------------------------
让我们一步步的来:
为了初结化一个ftp联接,php提供了ftp_connect()这个函数,它使用主机名称和端口作为参数。在上面的例子里,主机名字为“ftp.server.com”;如果端口没指定,php将会使用“21”作为缺省端口来建立联接。
联接成功后ftp_connect()传回一个handle句柄;这个handle将被以后使用的ftp函数使用。
--------------------------------------------------------------------------------
<?

// connect to ftp server
$conn = ftp_connect("ftp.server.com");

?>
--------------------------------------------------------------------------------
一旦建立联接,使用ftp_login()发送一个用户名称和用户密码。你可以看到,这个函数ftp_login()使用了ftp_connect()函数传来的handle,以确定用户名和密码能被提交到正确的服务器。
--------------------------------------------------------------------------------
<?

// log in with username and password
ftp_login($conn, "john", "doe");

?>
--------------------------------------------------------------------------------
这时,你就能够做你想做的事情了,具体在下一部分讲:

做完你想做的事后,千万要记住使用ftp_quit()函数关闭你的ftp联接

--------------------------------------------------------------------------------
<?

// close connection
ftp_quit($conn);

?>

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网