php虚拟空间注册(php语言入门)
发布时间:2022-07-12 21:52:31
文章来源:快乐收录网
访问次数:
FTP 服务可以说是互联网各大协议服务中仅次于 HTTP 的存在。在之前玩虚拟空间的时候,服务商一般提供的就是一个 FTP 来让我们上传下载代码并且管理主机中的内容。即使是现在云服务器的时代,也有很多人会搭建 FTP 服务来进行代码的管理,当然,这个已经不多见了。而在企业内部,FTP 也经常用于企业内部的文件共享管理,这个相对来说就常见很多。所以说,FTP 服务依然是很重要的一个功能,对于我们 PHP 来说,当然也是完全支持的。
除了代码上传之外,在某些业务场景中,比如在云服务还不是非常流行的年代,往往我们会把图片、大文件这些素材存放到一台单独的有着大容量硬盘的服务器上。这时,在后台上传这些文件的时候,我们就需要使用 FTP 的功能将业务服务器上传的文件再通过 FTP 服务传输到文件服务器中,这就是在业务环境下 FTP 最典型的应用。
在 PHP 中,FTP 扩展是包含在源码中的,也就是说,我们在编译的时候直接加上 --with-ftp 就可以了,非常地方便。如果编译的时候没有安装的话,后期在源码包中直接找到 FTP 目录扩展安装就可以了。
连接 FTP 服务器
首先我们来看一下如果连接 FTP 服务,在这里我们使用虚拟机搭建了一台 FTP 服务器,然后从本地连接。
$conn = ftp_connect("192.168.56.102"); ftp_login($conn, 'testftp', '123456'); $pwdInfo = ftp_pwd($conn); $dirInfo = ftp_nlist($conn, $pwdInfo); print_r($pwdInfo); // /home/testftp print_r($dirInfo); // Array // ( // ) ftp_close($conn);
通过 ftp_connect() 就可以拿到一个 FTP 连接句柄,然后使用 ftp_login() 进行登录。登录之后就算是正式地连接成功了。这时我们就可以通过 ftp_pwd() 看到我们登录帐号的目录情况,也可以通过 ftp_nlist() 看到目录中的内容。当前我们还没有上传任何东西,目录里面还是空的。ftp_close() 用于关闭一个 FTP 连接句柄。
操作目录
在上传文件之前,我们先看下如何操作目录,也就是目录的创建、删除之类的操作。
$conn = ftp_connect("192.168.56.102"); ftp_login($conn, 'testftp', '123456'); ftp_mkdir($conn, 'www'); ftp_mkdir($conn, 'www1'); ftp_mkdir($conn, 'www2'); ftp_rename($conn, 'www1', 'www11'); ftp_rmdir($conn, 'www2'); print_r(ftp_nlist($conn, $pwdInfo)); // Array // ( // [0] => /home/testftp/www // [1] => /home/testftp/www11 // )
通过 ftp_mkdir() 可以创建目录,ftp_rename() 用于改名,这个函数不只是针对目录,也可以对文件进行改名操作。ftp_rmdir() 就是删除目录的操作。
在这段测试代码中,我们创建了 3 个目录,然后对其中一个目录改名,并删一个目录。最后通过 ftp_nlist() 查看当前用户目录下的内容。
上传文件
目录操作之后就是文件相关的操作,这里我们分开来说,先看一下上传文件的操作。
ftp_put($conn, '1.php', './1.学习一个PHP中用于检测危险函数的扩展Taint.php'); ftp_chdir($conn, 'www'); ftp_put($conn, '2.php', './2.一起学习PHP中的DS数据结构扩展(一).php'); ftp_cdup($conn); ftp_put($conn, 'www11/3.php', './3.一起学习PHP中的DS数据结构扩展(二).php'); ftp_rename($conn, 'www/2.php', 'www/22.php'); print_r(ftp_rawlist($conn, '.')); // Array // ( // [0] => -rw-r--r-- 1 1003 1003 1785 Feb 24 01:09 1.php // [1] => drwxr-xr-x 2 1003 1003 20 Feb 24 01:09 www // [2] => drwxr-xr-x 2 1003 1003 6 Feb 24 00:51 www1 // [3] => drwxr-xr-x 2 1003 1003 19 Feb 24 00:50 www11 // ) print_r(ftp_rawlist($conn, 'www')); // Array // ( // [0] => -rw-r--r-- 1 1003 1003 10538 Feb 24 01:09 22.php // ) print_r(ftp_rawlist($conn, 'www11')); // Array // ( // [0] => -rw-r--r-- 1 1003 1003 1534 Feb 24 01:09 3.php // )
ftp_put() 用于文件的上传,我们需要定义上传之后的文件名,如果只是一个文件名的话,那么这个文件就会上传到当前目录下,也就是我们登录之后的 /home/testftp 这个用户目录。我们可以使用 ftp_chdir() 进入某个指定的目录之后上传,使用 ftp_cdup() 返回上级目录。同时,我们也可以直接在文件名加入路径信息,这样就不用进入某个具体的目录,而是直接将文件上传到指定的目录中。
ftp_rawlist() 是另一种显示目录内部文件和目录信息的函数,它展示的内容和操作系统中的 ls -l 命令比较像,也就是显示的内容更加详细丰富一些。同样地,在这里我们也演示了通过 ftp_rename() 函数来修改文件的名称。
文件相关信息及下载文件
文件上传了之后,我们也可以通过一些函数来查看文件的信息。
echo ftp_mdtm($conn, 'www11/3.php'), PHP_EOL; // 1614128689 echo ftp_size($conn, 'www/22.php'), PHP_EOL; // 10538 echo ftp_systype($conn), PHP_EOL; // UNIX
这里就是简单的通过这三个函数看一下文件的上传时间、大小信息。ftp_systype() 函数查看的是 FTP 服务器的操作系统信息。
ftp_get($conn, '222.php', 'www/22.php'); // ./222.php ftp_delete($conn, 'www11/3.php'); print_r(ftp_rawlist($conn, 'www11')); // Array // ( // )
下载文件直接使用 ftp_get() 方法就可以了,同样我们也可以定义下载之后的文件名。其实在大部分情况下,不管是上传还是下载,我们都不用去修改文件名,保持原有的文件名会更加方便我们之后的操作。
ftp_delete() 用于删除 FTP 服务器上的某个文件,这个也不需要过多地解释了。
总结
通过上面这些函数,其实一些基本的 FTP 操作也就完成了,当然,在文档中还有更多的函数这里没有解释说明,不过也并不是特别重要的函数。有兴趣的同学可以自己去官方查看相关的函数说明。FTP 服务虽然现在可能使用的会少一些,但在很多场景下它还是非常方便的,所以大家多少要了解掌握一些。
《php虚拟空间注册(php语言入门)》更新于时间:2022-07-12 21:52:31;由本站小编进行发布,目前浏览的小伙伴达到,感谢你们的支持,后期快乐收录网小编会继续为大家更新更多相关的文章,希望广大网友多多关注快乐收录网工作心得栏目,如果觉得本站不错,那就给我们一个分享的支持吧!
php虚拟空间注册(php语言入门)特别声明
本站快乐收录网提供的php虚拟空间注册(php语言入门)都来源于网络,不保证文章的准确性和真实性,同时,对于该文章所造成的影响,不由快乐收录网实际控制,在2022-07-12 21:52:31收录时,该网页上的内容,都属于合规合法,如有侵权违规,可以直接联系网站管理员进行整改或删除,快乐收录网不承担任何责任。
快乐收录网:致力于优质、实用的网络站点资源收集与分享!本文地址:https://nav.klxjz.cn/zixundaquan/wzyh/202207/8693.html转载请注明标签:
- 1华为 Nova 10 和 Nova 10 Pro 配备 120 Hz OLED 显示屏
- 2Realme GT2 Master Explorer Edition设计随着高端智能手机发布之旅的开始而揭晓
- 3Wi-Fi 7 技术将支持 40Gbps 的速度
- 4小米 11T 和 11T Pro 配备相同的 108 MP 摄像头
- 5Garmin Forerunner 955 系列收到软件版本 11.12
- 6到 2026 年翻新智能手机市场的价值预计将增长近 460 亿美元
- 7小米发布 Band 7 Pro 固件更新 进行各种改进和优化
- 8苹果最新的MacBook Air产品将影响 Wintel 笔记本电脑的销售
- 9戴尔 Precision 7770 和 7670 现在可与英特尔第 12 代博锐 CPU 和 Nvidia RTX A5500 显卡一起购买
- 10System76 使用 Intel Alder Lake-U 处理器升级其基于 Linux 的 Lemur Pro 笔记本电脑
- 11苹果计划在今年发布标准 Watch Series 更新的替代品
- 12OnePlus的10T发布了新旗舰智能手机发布前的最高AnTuTu分数
- 13摩托罗拉 Edge 30:搭载 Android 12 的超薄中端智能手机
- 14小米 12智能手机相机是如何拍摄的
- 15NintendoSwitchOnline下周将获得被低估的神奇宝贝经典
- 16MUJI x Honda MS01 电动自行车透露最高时速 25 公里和无钥匙解锁功能
- 17Infinix 最新 Note 12 系列智能手机升级至 5G 起价低于 200 美元
- 18Amazfit 正在举行 2022 年年中的促销活动
- 19AMD 的 RDNA 3 Chiplet 专利详述了尖端着色器优化架构