时间:2021-07-01 10:21:17 帮助过:20人阅读
输出。
- <br><?php <br>$filename="./files.text"; <br>$fp=fopen($finename,"rb"); <br>$encho fread($fp,100); <br>?> <br> <br>readfile(),file()和file_get_contents()函数. <br>readfile(),file()和file_get_contents()函数. <br> int readfile(string filename[,bool use_include_path,resource context]);//读取一个文件并写入到缓冲区,如果成功,则返回读取的字节数,否则返回false。filename文件名。参数use_include_path控制是否支持在include_path中搜索文件,true为支持。使用readfile函数不需要打开/关闭文件。 <br> array file(string filename [,bool use_include_path[,resource context]]);//将整个文件的内容读取到数组中。如果成功,返回数组,数组中的每个元素都是文件中对应的一行,包活换行符在内;否则返回false; <br> 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编码。 <br><br>备注:readfile(),file()和file_get_contents()在读取整个文件夹中的内容时,不需要使用fopen()和fclose()函数,但是在读取一个字符,一行字符和任意长的字符时则必须使用。 <br><br><strong>2.写入文件: <br></strong> int fwrite(resource handle,string[,int length]);//执行文件的写入操作,它还有一个别名fputs().该方法用于把string的内容写入文件指针handle处。如果设置length,那麽写入length个字节或者完成string写入后,操作就会停止。成功写入则返回true,否则返回false。 <br>备注:若给出length参数,那麽php.ini文件中的magic_quotes_runtime选项将会被忽略,而string中的斜线将不会被抽去。区分二进制文件和文本文件系统则在打开文件时fopen()函数的mode参数要加上‘b'。 <br> int file_put_contents(string filename,string data[.int flags[,resource context]]);//将一个字符串写入文件中,如果成功则返回字节数,否则返回false。flags:实现对文件的锁定(选项有 file_use_include_path,file_append:追加,lock_ex:独佔锁定)。context一个context资源。 <br>备注:fwrite()虽然具备写入文件的功能,但是必须有fopen()和fclose()函数的支持。file_put_contents()整合了fopen(),fwrite(),fclose()功能,可以单独完成文件的写入。 <br><strong>3.关闭文件 <br></strong> 文件有打开就应该有关闭功能,对文件的操作结束后,应该关闭这个文件,否则可能引起错误。 <br> bool fclose(resouce handle);//将参数handle指向的文件关闭,如果成功则返回true,否则返回false。 <br><br><strong>锁定文件</strong> <br> 在向一个文本文件中写入数据的时候,需要先锁定文件,已防止其他用户同时也修改此文件的内容。php中通过flock()函数实现文件的锁定。 <br> bool flock(int handle ,int operation);//参数operation控制锁定权限。包括:lock_sh:取得共享锁定(读取程序)。lock_ex:取得独佔锁定(写入)。lock_un:释放锁定。lock_nb:防止flock()函数在锁定时堵塞。 <br><br><strong>目录处理函数 <br></strong> 目录是一种特殊的文件。既然是文件,如果对其进行操作,同样必须先打开,然后才可以进行浏览操作,最后还要记得关闭。 <br><br><strong>1.打开目录</strong> <br><br> 打开指定的目录文件,若果成功,则返回目录的句柄。否则返回false。与打开文件不同的是,若目录不存在,它并不会自动创建目录,而是抛出一个错误信息。通过在opendir()函数前加“@”符号,可以屏蔽错误信息的
- <br><?php <br>/*判断是否由上传图片*/ <br>if(!empty($_FILES['up_picture'][name])){ <br>/*将图片信息赋值给变量*/ <br>$type=strtolower(strstr($_FILES['up_picture'][name],".")); <br>if($type != '.jpg' && $type != '.gif') echo "你上传的文件格式不对"; <br>else{ <br>if($_FILES['up_picture'][size]<2000000 && $_FILES['up_picture'][size]>0){ <br>echo "上传文件名称:".$_FILES['up_picture'][name]."<br/>"; <br>echo "上传文件类型:".$type."<br/>"; <br>echo "上传文件大小:".$_FILES['up_picture'][size]."<br/>"; <br>}else echo "图片大小不符合要求。"; <br>} <br>} <br>?> <br> <br><br><strong>3.文件上传。</strong> <br><br> php中应用move_uploaded_file()函数实现文件上传。但在执行之前,为了防止潜在的攻击对原本不能通过脚本交互的文件进行非法管理,可以先应用is_uploaded_file()函数判断指定的文件是否通过HTTP POST上传的,如果是则返回true。通过该函数,可以确保恶意的用户无法欺骗脚本去访问不能访问的文件。 <br> bool is_uploaded_file(string name);//用于判断指定的文件是否通过HTTP POST上传的。filename必须类似于$_FILES[‘filename'][‘temp_name']的变量,不可以使用从客户端上传的文件名$_FILES[‘filename'][‘name']。 <br><br> move_upload_file(string filename,string destination);//该函数用于将文件上传到服务器中指定的位置。如果成功,则返回true,否则返回false。filename指定上传文件的临时文件名,即$_FILES['tmp_name'],参数destination指定文件上传后保存的新路径和名称。如果参数不是合法的上传文件,不会出现任何操作,该函数将返回false。如果是合法的上传操作,但是由于某些原因无法移动,则不会出现任何操作,返回false的同时将会发出一条警告。 <br><span><u></u></span> 代码如下:<pre class="brush:php;toolbar:false layui-box layui-code-view layui-code-notepad"><ol class="layui-code-ol"><li><br><?php <br>if( !empty($_FILES[ 'up_picture' ][ 'name' ])){ <br>if( $_FILES['up_picture']['error'] > 0){ <br>echo "上传错误!"; <br>switch($_FILES['up_picture']['error']){ <br>case 1: <br>echo "上传文件超出配置文件规定值"; <br>break; <br>case 2: <br>echo "上传文件超出表单规定值"; <br>break; <br>case 3: <br>echo "上传文件不全"; <br>break; <br>case 4: <br>echo "没有上传文件"; <br>break; <br>} <br>}else{ <br>if( ! is_dir('./upfile/') ) mkdir('./upfile/'); <br>$path='./upfile/'.time().$_FILES['up_picture' ][ 'name' ]; <br>if( is_uploaded_filed( $_FILES['up_picture' ][ 'tmp_name' ] )){ <br>if(!move_uploaded_file( $_FILES['up_picture' ][ 'tmp_name' ] ,$path )){ <br>echo "上传失败!"; <br>}else{ <br>echo "文件".time().$_FILES['up_picture' ][ 'name' ] ."上传成功,大小为:".$_FILES['up_picture' ][ 'size' ] ; <br>} <br>}else{ <br>echo "上传文件".$_FILES['up_picture' ][ 'name' ]."不合法"; <br>} <br>} <br>} <br>?> <br> <br><br><strong>4.文件下载 <br><br></strong>这裡介绍通过http方式下载文件,主要用到header()函数。header()函数属于HTTP函数,其作用是以HTTP将HTML文档的表头送到浏览器,并告诉浏览器具体怎麽处理这个页面。 <br>void header(string string[,bool replace[,int http_respone_code]]);//参数string 指定发送的标头。参数replace控制如果一次发送多个标头,对于相似的标头是替换还是添加。如果是false,则强制发送多个同类型的标头,默认为true。参数http_respone_code强制将HTTP响应代码设置为指定值: <br>下载步骤如下: <br> a):通过"Content-Type" 指定文件的MIME类型。 <br> b):通过"Content-Disposition" 对文件进行描述,值"attachment;filename="test.jpg"" 说明是一个福建,同时指定下载文件的名称。 <br> c):通过"Content-Length" 设置下载文件的大小。 <br>d):通过readfile()函数读取文件内容。 <br>例如: <br><span><u></u></span> 代码如下:<pre class="brush:php;toolbar:false layui-box layui-code-view layui-code-notepad"><ol class="layui-code-ol"><li><br>header('Content-Type:image/jpg'); <br>header(' Content-Disposition:attachment;filename="test.jpg" '); <br>header('Content-Length:'.filesize('test.jpg') ); <br>readfile('test.jpg'); <br> <br><br><strong>5.访问远程文件</strong> <br><br> 步骤1:配置 php.ini 文件选项 allow_url_fopen设置为on。参数默认是开啓的,允许打开http和ftp指定的远程文件。如果 allow_url_fopen设置为off,则不允许打开远程文件。 <br> 步骤2:使用fopen()函数读取文件内容。根据内容创建你想要的资源,保存到本地。 <br> <br>ps:更多php.ini配置文件中的文件操作 和 目录操作的扩展方法请参考官方php指南。</li><li> </li><li> </li></ol></pre></li></ol></pre>