0

0

PHP 文件系统详解(推荐)

php中文网

php中文网

发布时间:2016-07-25 08:54:22

|

1343人浏览过

|

来源于php中文网

原创

  1. $filename="./files.text";
  2. $fp=fopen($finename,"rb");
  3. $encho fread($fp,100);
  4. ?>
复制代码

readfile(),file()和file_get_contents()函数. readfile(),file()和file_get_contents()函数.   int readfile(string filename[,bool use_include_path,resource context]);//读取一个文件并写入到缓冲区,如果成功,则返回读取的字节数,否则返回false。filename文件名。参数use_include_path控制是否支持在include_path中搜索文件,true为支持。使用readfile函数不需要打开/关闭文件。   array file(string filename [,bool use_include_path[,resource context]]);//将整个文件的内容读取到数组中。如果成功,返回数组,数组中的每个元素都是文件中对应的一行,包活换行符在内;否则返回false;   string file_get_contents(string filename[,bool use_include_path[,resource context[,int offset[,int maxlen]]]]);//context 为5.0新增的内容,可以用NULL来忽略。offset,maxlen为5.1的的内容。offset 用于标记文件啓始的位置,maxlen 设置文件读取的长度。该方法适用于二进制文件的读取。是将文件内容读入到一个字符串的首选方法。如果操作系统支持,还会使用内存映射技术来增强性能。如果打开有特殊字符的URL(例如存在空格),那麽要使用urlencode()来进行URL编码。

备注:readfile(),file()和file_get_contents()在读取整个文件夹中的内容时,不需要使用fopen()和fclose()函数,但是在读取一个字符,一行字符和任意长的字符时则必须使用。

2.写入文件:     int fwrite(resource handle,string[,int length]);//执行文件的写入操作,它还有一个别名fputs().该方法用于把string的内容写入文件指针handle处。如果设置length,那麽写入length个字节或者完成string写入后,操作就会停止。成功写入则返回true,否则返回false。 备注:若给出length参数,那麽php.ini文件中的magic_quotes_runtime选项将会被忽略,而string中的斜线将不会被抽去。区分二进制文件和文本文件系统则在打开文件时fopen()函数的mode参数要加上‘b'。    int file_put_contents(string filename,string data[.int flags[,resource context]]);//将一个字符串写入文件中,如果成功则返回字节数,否则返回false。flags:实现对文件的锁定(选项有 file_use_include_path,file_append:追加,lock_ex:独佔锁定)。context一个context资源。 备注:fwrite()虽然具备写入文件的功能,但是必须有fopen()和fclose()函数的支持。file_put_contents()整合了fopen(),fwrite(),fclose()功能,可以单独完成文件的写入。 3.关闭文件   文件有打开就应该有关闭功能,对文件的操作结束后,应该关闭这个文件,否则可能引起错误。   bool fclose(resouce handle);//将参数handle指向的文件关闭,如果成功则返回true,否则返回false。

锁定文件   在向一个文本文件中写入数据的时候,需要先锁定文件,已防止其他用户同时也修改此文件的内容。php中通过flock()函数实现文件的锁定。    bool flock(int handle ,int operation);//参数operation控制锁定权限。包括:lock_sh:取得共享锁定(读取程序)。lock_ex:取得独佔锁定(写入)。lock_un:释放锁定。lock_nb:防止flock()函数在锁定时堵塞。

目录处理函数   目录是一种特殊的文件。既然是文件,如果对其进行操作,同样必须先打开,然后才可以进行浏览操作,最后还要记得关闭。

1.打开目录

  打开指定的目录文件,若果成功,则返回目录的句柄。否则返回false。与打开文件不同的是,若目录不存在,它并不会自动创建目录,而是抛出一个错误信息。通过在opendir()函数前加“@”符号,可以屏蔽错误信息的输出。   resource opendir(string path[,resource context]);//path指定要打开的目录文件。如果path指定的不是一个有效的目录,或者因为权限问题,文件系统错误不能打开,那麽该函数将会返回false,并且产生一个E_WARNING级别的错误信息。

2.浏览目录

 利用opendir函数返回的句柄配合scandir函数实现浏览操作。   array scandir(string directory[,int sorting_ordering[,resource context]]);//用于浏览指定路径下的目录和文件。如果成功则返回包含文件名的array,否则返回false。directory指定要浏览的目录,如果不是目录,那麽将返回false,并且产生一个E_WARNING级别的错误信息。sorting_order设置排列顺序,默认为字母升序排列。如果带上该参数,则变为降序排列。 备注:is_dir()函数,判断指定文件名是否一个目录。如果文件名存在且为目录,则返回true,否则返回false。如果是相对目录,则按照当前工作目录检查其相对路径。

3.关闭目录。   void closedir(resource handle);//handle,要关闭的工作目录的句柄。

备注:前面已经了解到,若打开的目录不存在,系统并不会帮我们创建目录。那麽我们可以自行创建想要的目录。可以应用以下函数:     mkdir()函数:新建一个目录,成功则返回true,否则false。     rmdir()函数:删除目录。目录必须为空(目录中无文件或者子目录),且要有操作的权限。     unlink()函数:删除文件,成功则返回true,失败返回false。

php文件上传、php文件下载原理          步骤内容:   步骤1:控制上传文件,通过php.ini文件配置。   步骤2:对上传文件进行判断。上传文件的大小,格式等。   步骤3:执行上传文件的操作方法。

1,控制上传文件:

  php通过对php.ini对上传文件进行控制,包括:是否支持上传、上传文件的临时目录、上传文件的大小、指令执行的时间与指令分配的内存空间。     在php.ini文件中定位到file uploads选项,完成对上述选项的设置。选项含义如下:     file_uploads:如果是on,说明服务器支持文件上传,如果为off,则不支持。一般默认是支持的,此选项不必修改。     upload_tem_dir:上传文件的临时目录。在文件上传成功之前,文件首先保存在服务器的临时目录中。多数使用系统默认目录,但是也可以自行设置。     upload_max_filesize:服务器允许上传文件的最大值,以MB为单位。系统默认为2MB,若超过则须修改其值。     max_execution_time:php中一个指令所能执行的最长时间,单位是秒。该指令在执行上传超大文件时必须修改,否则及时上传文件在服务器允许的范围内,但是超过指令所能执行的最长时间,仍然无法实现上传。     memory_limit:php中一个指令所分配的内存空间,单位时MB。它的大小同样会影响到超大文件的上传。

备注:在客户端中控制上传文件应用的时form表单中的enctype和method属性,以及隐藏域MAX_FILE_SIZE.     enctype="multipart/form-data":指定表单编码数据方式。     method="post":指定数据传输的方式。     :通过隐藏域控制上传文件的大小,单位为字节。该值不能超过php.ini配置文件中的upload_max_filesize选项设置的值。它不能完全控制上传文件的大小,只能避免一些不必要的麻烦。

2,判断上传文件

睿拓智能网站系统-网上商城
睿拓智能网站系统-网上商城

睿拓智能网站系统-网上商城1.0免费版软件大小:5M运行环境:asp+access本版本是永州睿拓信息专为电子商务入门级用户开发的网上电子商城系统,拥有产品发布,新闻发布,在线下单等全部功能,并且正式商用用户可在线提供多个模板更换,可实现一般网店交易所有功能,是中小企业和个人开展个人独立电子商务商城最佳的选择,以下为详细功能介绍:1.最新产品-提供最新产品发布管理修改,和最新产品订单查看2.推荐产

下载

立即学习PHP免费学习笔记(深入)”;

  对上传文件进行判断应用的是全局变量$_FILES,$_FILES是一个数组,它包含所有上传文件的信息。数组中各个元素含义如下:     $_FILES[filename][name]:存储上传文件的文件名,如text.txt,title.jpg等。     $_FILES[filename][size]:存储文件的大小,单位为字节。     $_FILES[filename][tem_name]:存储文件在临时目录中使用的文件名,因为文件在上传时首先要将其以临时文件的身份存储在临时目录中。     $_FILES[filename][type]:存储上传文件的MIME类型。MIME规定各种文件格式的类型,每种MIME类型都时由“/”分隔的主类型和子类型组成。例如:"image/gif"的主类型为图像,子类型为GIF格式的文件。"text/html"代表文本的HTML文件。     $_FILES[filename][error]:存储文件上传的错误代码:此项目为PHP4.2.0版本中新增内容。它的返回值由5种:       0:表示没有任何错误。文件上传成功。       1:表示上传文件的大小超出配置文件指令upload_max_filesize选项的限定值。       2:表示上传文件的大小超出HTML表单中max_file_size选项所指定的值。       3:表示文件只被上传了一部分。       4:表示没有上传任何文件。 例子:

  1. /*判断是否由上传图片*/
  2. if(!empty($_FILES['up_picture'][name])){
  3. /*将图片信息赋值给变量*/
  4. $type=strtolower(strstr($_FILES['up_picture'][name],"."));
  5. if($type != '.jpg' && $type != '.gif') echo "你上传的文件格式不对";
  6. else{
  7. if($_FILES['up_picture'][size]0){
  8. echo "上传文件名称:".$_FILES['up_picture'][name]."
    ";
  9. echo "上传文件类型:".$type."
    ";
  10. echo "上传文件大小:".$_FILES['up_picture'][size]."
    ";
  11. }else echo "图片大小不符合要求。";
  12. }
  13. }
  14. ?>
复制代码

1 2 下一页 尾页



相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

616

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

194

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

91

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

20

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

54

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

29

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

15

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

598

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

56

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号