您好,欢迎访问一九零五行业门户网

PHP的FTP学习(一)

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  users3072 nov 2 11:03 .
drwxr-xr-x 88 root root 2048 nov 1 23:26 ..
drwxr--r--  2 john  users1024 oct 5 13:26 bin
drwx--x--x  8 john  users1024 nov 2 10:59 public_html
drwxr--r--  4 john  users1024 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);
?>
其它类似信息

推荐信息