设为首页收藏本站language 语言切换
查看: 1308|回复: 0
收起左侧

PHP的FTP学习(一)

[复制链接]
发表于 2010-2-24 13:42:29 | 显示全部楼层 |阅读模式
<>By Vikram Vaswani <BR>Melonfire <BR>November 07, 2000 <BR>   我们是一群PHP的忠实FANS,我们因各种不同的原因使用它-WEB站点的开发,画图,数据库的联接等 -我们发现,它非常的友好,强大而且易于使用……  <BR>你可能已经看到PHP是怎样被用于创建GIF和JPEG图像,从数据库中动态的获取信息等等,但这只是冰山的一角---最新版本的PHP拥有着强大的文件传输功能。 <BR>在这篇教程里,我将向你展示FTP怎样通过HTTP和FTP联接来传输文件,同时也会有一些简单的程序代码,跟我来吧! <BR><BR>首先,你应该知道PHP是通过HTTP和FTP联接来传输文件的。通过HTTP上传文件早在PHP3中就已经出现,现在,新的FTP函数已经在新的PHP版本中出现了! <BR>开始之前,你需要确信你的PHP支持FTP,你可以通过以下代码查知: <BR><BR>-------------------------------------------------------------------------------- <BR>&lt;? <BR><BR>phpinfo(); <BR><BR>?&gt; <BR>-------------------------------------------------------------------------------- <BR>检查输出结果,有一“Additional Modules”区,这里列示了你的PHP支持的模块;如果你没发现FTP模块,你最好重新安装PHP,并添加FTP支持! <BR><BR>先让我们来看看一个典型的FTP任务是怎样完成的吧! <BR>-------------------------------------------------------------------------------- <BR>$ ftp ftp.server.com <BR>Connected to ftp.server.com <BR>220 server.com FTP server ready. <BR>Name (server:john): john <BR>331 Password required for john. <BR>assword: <BR>230 User john logged in. <BR>Remote system type is UNIX. <BR>Using binary mode to transfer files. <BR>ftp&gt; ls <BR>200 PORT command successful. <BR>150 Opening ASCII mode data connection for /bin/ls. <BR>drwxr-xr-x  5 john   users        3072 Nov  2 11:03 . <BR>drwxr-xr-x  88 root     root         2048 Nov  1 23:26 .. <BR>drwxr--r--   2 john   users        1024 Oct  5 13:26 bin <BR>drwx--x--x   8 john   users        1024 Nov  2 10:59 public_html <BR>drwxr--r--   4 john   users        1024 Nov  2 11:26 tmp <BR>-rw-r--r--   1 john   users     2941465 Oct  9 17:21 data.zip <BR>226 Transfer complete. <BR>ftp&gt; bin <BR>200 Type set to I. <BR>ftp&gt; get data.zip <BR>local: data.zip remote: data.zip <BR>200 PORT command successful. <BR>150 Opening BINARY mode data connection for data.zip(2941465 bytes). <BR>226 Transfer complete. <BR>ftp&gt; bye <BR>221 Goodbye. <BR>-------------------------------------------------------------------------------- <BR>你可以看到,进程明显被分为几段:联接(与FTP服务器建立联接)、验证(确定用户是否有权力进入系统)、传输(这里包括列目录,上传或下载文件)、取消联接。 <BR><BR>使用PHP来FTP的步骤 <BR>建立一个PHP的FTP联接必须遵守以下基本步骤:打开一个联接 - 发出认证信息 - 使用PHP函数操纵目录和传输文件。 <BR>以下具体实现: <BR>-------------------------------------------------------------------------------- <BR>&lt;? <BR><BR>// 联接FTP服务器 <BR>$conn = ftp_connect("ftp.server.com"); <BR><BR>// 使用username和password登录 <BR>ftp_login($conn, "john", "doe"); <BR><BR>// 获取远端系统类型 <BR>ftp_systype($conn); <BR><BR>// 列示文件 <BR>$filelist = ftp_nlist($conn, "."); <BR><BR>// 下载文件 <BR>ftp_get($conn, "data.zip", "data.zip", FTP_BINARY); <BR><BR>// 关闭联接 <BR>ftp_quit($conn); <BR><BR>?&gt; <BR>-------------------------------------------------------------------------------- <BR>让我们一步步的来: <BR>为了初结化一个FTP联接,PHP提供了ftp_connect()这个函数,它使用主机名称和端口作为参数。在上面的例子里,主机名字为“ftp.server.com”;如果端口没指定,PHP将会使用“21”作为缺省端口来建立联接。 <BR>联接成功后ftp_connect()传回一个handle句柄;这个handle将被以后使用的FTP函数使用。 <BR>-------------------------------------------------------------------------------- <BR>&lt;? <BR><BR>// connect to FTP server <BR>$conn = ftp_connect("ftp.server.com"); <BR><BR>?&gt; <BR>-------------------------------------------------------------------------------- <BR>一旦建立联接,使用ftp_login()发送一个用户名称和用户密码。你可以看到,这个函数ftp_login()使用了ftp_connect()函数传来的handle,以确定用户名和密码能被提交到正确的服务器。 <BR>-------------------------------------------------------------------------------- <BR>&lt;? <BR><BR>// log in with username_and_password <BR>ftp_login($conn, "john", "doe"); <BR><BR>?&gt; <BR>-------------------------------------------------------------------------------- <BR>这时,你就能够做你想做的事情了,具体在下一部分讲: <BR><BR>做完你想做的事后,千万要记住使用ftp_quit()函数关闭你的FTP联接 <BR>  <BR>-------------------------------------------------------------------------------- <BR>&lt;? <BR><BR>// close connection <BR>ftp_quit($conn); <BR><BR>?&gt; <BR></P>
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-6 19:25 , Processed in 0.060625 second(s), 22 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表