文件操作是每个语言必须有的,不仅仅局限于PHP,这里我们就仅用PHP进行讲解
php的文件高级操作和文件上传实例我放在文章的最后部分。--以后我还会给大家写一个PHP类似于网盘操作的例子
注意:阅读此文章,必须的备一个 《PHP中文手册》或者其它可以查询PHP函数的手册 因为文章有大量的示例,但是为了节约篇幅和时间,所以请大家自行查阅PHP手册,以明白函数的具体作用
1、php打开文件和关闭文件
用到的函数 fopen() 、fclose() 注:打开的文件一定要关闭! 具体函数参数请查阅php手册
实例:
<?php $fopen = fopen("fun.txt","rb"); /* ...文件的其他操作 */ fclose($fopen); ?>View Code
fopen()函数在php5中也支持url格式:
<?php $fopen = fopen("http://www.baidu.com","rb"); while(!feof($fopen)) { echo fgets($fopen); } fclose($fopen);?>View Code
2、PHP的文件读写
读操作-
用到的函数 readfile()、file()、file_get_contents()、fgets()、fgetss()、fgetc()
示例中的文件位置请根据自己的文件进行更改,不要纠结文件位置和文件名什么的。重点在学习
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>文件测试</title></head><body><!--不需要打开文件读取--><table width="500" border="1" cellpadding="0" cellspacing="0"> <tr> <td width="253" height="100" align="right" valign="middle" scope="col">使用 readfile()函数读取文件内容: </td> <td width="241" height="100" align="center" valign="middle" scope="col"> <!-- 使用readfile()函数读取ee.txt文件内容 --> <?php readfile("ee.txt"); ?> </td> </tr> <tr> <td height="100" align="right" valign="middle">使用 file()函数读取文件内容: </td> <td height="100" align="center" valign="middle"> <!-- 使用file()函数读取ee.txt文件内容 --> <?php $f_arr = file("ee.txt"); foreach($f_arr as $cont) { echo $cont."<br />"; } ?> </td> </tr> <tr> <td width="250" height="25" align="right" valign="middle" scope="col">使用 file_get_contents()函数读取文件内容: </td> <td height="25" align="center" valign="middle" scope="col"> <!-- 使用file_get_contents()函数读取ee.txt文件内容 --> <?php $f_chr = file_get_contents("ee.txt"); echo $f_chr; ?> </td> </tr></table><!--需要打开文件流读取--><table border="1" cellpadding="0" cellspacing="0"> <tr> <td align="right" valign="middle" scope="col">使用fgets()函数:</td> <td align="center" valign="middle" scope="col"> <!--使用fgets()函数读取--> <?php $fopen = fopen("fun.txt","rb"); //打开文件 while(!feof($fopen)) //feof()函数测试指针是否到了文件结束的位置 { echo fgets($fopen); //输出当前行 } fclose($fopen); //关闭文件 ?> </td> </tr> <tr> <td align="right" valign="middle" >使用fgetss()函数:</td> <td align="center" valign="middle"> <!--使用fgetss()函数读取--> <?php $fopen = fopen("fun.txt","rb"); while(!feof($fopen)) //feof()函数测试指针是否到了文件结束的位置 { echo fgetss($fopen); //输出当前行 } fclose($fopen); ?> </td> </tr> <tr> <td align="right" valign="middle" >使用fgetc()函数:</td> <td align="center" valign="middle"> <!--使用fgetss()函数读取--> <?php $fopen = fopen("ee.txt","rb"); //创建文件资源。打开文件流 while(false !== ($chr = fgetc($fopen))) //使用fgetc()函数取得一个字符串,判断是否为false { echo $chr; //如果不是,输出该字符 } fclose($fopen); //关闭文件资源 ?> </td> </tr></table></body></html>View Code
写操作-
用到的函数 fwrite()、 file_put_contents()
<?php/* $filename = "ee.txt"; //要读取的文件 $fp = fopen($filename,"rb"); //打开文件 echo fread($fp,6); //使用 fread() 函数读取文件内容的前32个字节 echo "<p>"; echo fread($fp,filesize($filename)); //输出其余的文件内容 */ $filepath = "05.txt"; $str = "此情可待成追忆 只是当时已惘然<br />"; echo "用 fwrite() 函数写入文件: "; $fopen = fopen($filepath,"wb") or die("文件不存在"); fwrite($fopen,$str); fclose($fopen); readfile($filepath); echo "<p>用 file_put_contents() 函数写入文件: "; file_put_contents($filepath,$str); readfile($filepath);?>View Code
3、php文件本身的操作
本示例只是列举函数,请不要直接运行。运行前请根据自己的需求更改
<?php date_default_timezone_set('Asia/Shanghai'); //PHP5以上版本支持 --时区的设置,一会儿会有涉及到时间 //php文件操作 --本示例只是列举函数,请不要直接运行。运行前请根据自己的需求更改 /*用rename()函数文件重命名*/ rename("123.txt","321.txt"); /*用copy()函数 复制文件*/ copy("ee.txt","upfile/ee.txt"); /*用unlink()函数 删除文件*/ unlink("321.txt"); /*用fileatime()函数 返回文件最后一次访问的时间 --默认是以unix时间戳来访问的*/ echo "Last access time: ".date("Y-m-d H:i:s",fileatime("ee.txt")); /*用filemtime()函数 返回文件最后一次被修改的时间 --默认是以unix时间戳来访问的*/ echo "Last modified time: ".date("Y-m-d H:i:s",filemtime("ee.txt")); /*用filesize() 函数取得文件大小 以字节数显示*/ echo filesize("ee.txt"); /*用pathinfo() 函数获取文件信息 包括路径、类型、名字等*/ print_r(pathinfo("ee.txt")); /*用realpath() 函数返回文件的绝对路径*/ echo realpath("ee.txt"); /*用stat() 函数返回文件的相关信息。如大小、最后修改时间等等*/ print_r(stat("ee.txt"));?>View Code
===================================================================
一、php目录操作
和文件操作类似,也要打开关闭目录 用opendir()、和closedir()函数进行打开和关闭目录
<?php $path = "D:/user/test"; //路径应为 "/" 而不是 "\" if(is_dir($path)) //检测是否是一个目录 { if($dire = opendir($path)) //判断打开目录是否成功 { echo $dire; //输出目录指针 } } else { echo '路劲错误'; exit(); } closedir($dire); //关闭目录?>View Code
二、php目录的游览
核心函数 scandir()
<?php $path = "D:/user"; //要游览的目录 if(is_dir($path)) { $dir = scandir($path); //使用scandir() 函数取得所有文件及目录 foreach($dir as $value) //使用foreach循环遍历 { echo iconv("gbk","utf-8",$value); //转换编码。 echo "<br />"; } } else { echo "目录路径错误!"; }?>View Code
三、php目录的其他操作,获取磁盘目录大小,新建删除目录等等
本示例只是列举函数,请不要直接运行。运行前请根据自己的需求更改
<?php /*本示例只是列举函数,请不要直接运行。运行前请根据自己的需求更改*/ /*用mkdir() 函数新建一个指定目录*/ mkdir("tt"); /*用rmdir()函数 删除一个指定的目录,前提是目录必须是空的*/ rmdir("tt"); /*用getcwd()函数 获取当前工作的目录*/ echo getcwd(); /*用chdir() 函数更改当前目录为工作目录*/ echo getcwd(); echo "<br />"; chdir("../"); //更改为返回上一级 echo getcwd(); //重新获取当前目录 /*用disk_free_space()函数 返回目录中的可用空间*/ echo disk_free_space("D:/")/pow(1024,3); //这里换算成了G、默认是以字节显示的 /*用disk_total_space()函数 返回目录中的可用空间*/ echo disk_total_space("D:/")/pow(1024,3); //这里换算成了G、默认是以字节显示的 /*关于PHP5以前的老游览目录的方法 我就不列举了,这里仅仅给出函数名: readdir()、rewinddir()*/?>View Code
====================================================================
文件的高级运用
文件指针:
<?php $filename = "ee.txt"; //指定文件路径及文件名 if(is_file($filename)) //判断文件是否存在 { echo "文件总字节数: ".filesize($filename)."<br />"; //输出总字节数 $fopen = fopen($filename,"rb"); //打开文件 , 以只读的二进制文件格式的去 echo "初始指针位置是: ".ftell($fopen)."<br />"; //输出指针位置 fseek($fopen,3); //移动指针 echo "使用 fseek() 函数后指针位置: ".ftell($fopen)."<br />"; //输出移动后的指针位置 echo "输出当前指针后面的内容: ".fgets($fopen)."<br />"; //输出从当前指针到行尾的内容 if(feof($fopen)) //判断指针是否指向文件末尾 { echo "当前指针指向文件末尾: ".ftell($fopen)."<br />"; //如果指向了文件尾,则输出指针位置 } //使用rewind() 函数返回文档流的开头 --一旦流读到末尾再度就读不到数据了, //所以这里要重新指向一个文件的指针 rewind($fopen); //查看使用 rewind() 函数后指针的位置 echo "使用 rewind() 函数后指针的位置: ".ftell($fopen)."<br />"; echo "输出前 6 个字节的内容: ".fgets($fopen,6); //输出前6个字节的内容 fclose($fopen); //关闭文件 } else { echo "文件不存在!"; }?>View Code
文件锁定:
<?php $filename = '05.txt'; //声明要打开文件名称 $fopen = fopen($filename,'w'); //以w 只写的形式打开文件 flock($fopen,LOCK_EX); //锁定文件 (独占共享) fwrite($fopen,"hightman1"); //向文件中写入数据 flock($fopen,LOCK_UN); //解除锁定 fclose($fopen); //关闭文件指针 readfile($filename); //输出文件内容?>View Code
====================================================================
文件的上传
获取上传文件的信息:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title></head><body> <table width="500" border="0" cellpadding="0" cellspacing="0"> <!-- 上传文件的form表单,必须有 enctype 属性 --> <form enctype="multipart/form-data" action="" method="post"> <tr> <td width="150" height="30" align="right" valign="middle">请选择上传文件: </td> <!-- 上传文件域,type类型为file --> <td width="250"><input type="file" style="border:1px solid #000" name="upfile" /></td> <!-- 提交按钮 --> <td width="100"><input type="submit" name="submit" value="上传" /></td> </tr> </form> </table> <?php if(!empty($_FILES)) //检查变量是否为空 { foreach($_FILES['upfile'] as $name=>$value) //使用foreach循环输出上传文件信息的名称和值 { echo $name.'='.$value."<br />"; } } ?></body></html>View Code
真正的文件上传(从临时到指定位置):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title></head><body> <form action="" method="post" enctype="multipart/form-data" name="form"> <input name="up_file" type="file" /> <input type="submit" name="submit" value="上传" /> </form> <?php if(!empty($_FILES['up_file']['name'])) //判断是否有上传文件 { $fileinfo = $_FILES['up_file']; //将文件信息赋给fileinfo if($fileinfo['size'] < 901 && $fileinfo['size'] > 0) //判断文件大小 { //上传文件 move_uploaded_file($fileinfo['tmp_name'],"upfile/".$fileinfo['name']); echo "文件上传成功!"; } else { echo "文件太大或者未知"; } } ?></body></html>View Code
多文件上传:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title></head><body> <form action="" method="post" enctype="multipart/form-data"> <table id="up_table" border="1" bgcolor="#f0f0f0"> <tbody id="auto"> <tr id="show"> <td>上传文件</td> <td><input type="file" name="u_file[]" /></td> </tr> <tr> <td>上传文件</td> <td><input type="file" name="u_file[]" /></td> </tr> <tr> <td colspan="4"><input type="submit" value="上传" /></td> </tr> </tbody> </table> </form> <?php if(!empty($_FILES['u_file']['name'])) //判断$FILES变量是否为空 { $file_name = $_FILES['u_file']['name']; //将上传的临时文件名存放在数组里 $file_tmp_name = $_FILES['u_file']['tmp_name']; //将上传的临时文件路径存放数组 for($i = 0; $i<count($file_name); $i++) //循环上传文件 { if($file_name[$i] != '') //判断上传文件名是否为空 { move_uploaded_file($file_tmp_name[$i],"upfile/".$i.$file_name[$i]); echo "文件".$file_name[$i]."上传成功, --更名为".$i.$file_name[$i]."<br />"; } } } ?></body></html>View Code

PHP는 전자 상거래, 컨텐츠 관리 시스템 및 API 개발에 널리 사용됩니다. 1) 전자 상거래 : 쇼핑 카트 기능 및 지불 처리에 사용됩니다. 2) 컨텐츠 관리 시스템 : 동적 컨텐츠 생성 및 사용자 관리에 사용됩니다. 3) API 개발 : 편안한 API 개발 및 API 보안에 사용됩니다. 성능 최적화 및 모범 사례를 통해 PHP 애플리케이션의 효율성과 유지 보수 성이 향상됩니다.

PHP를 사용하면 대화식 웹 컨텐츠를 쉽게 만들 수 있습니다. 1) HTML을 포함하여 컨텐츠를 동적으로 생성하고 사용자 입력 또는 데이터베이스 데이터를 기반으로 실시간으로 표시합니다. 2) 프로세스 양식 제출 및 동적 출력을 생성하여 htmlspecialchars를 사용하여 XSS를 방지합니다. 3) MySQL을 사용하여 사용자 등록 시스템을 작성하고 Password_Hash 및 전처리 명세서를 사용하여 보안을 향상시킵니다. 이러한 기술을 마스터하면 웹 개발의 효율성이 향상됩니다.

PHP와 Python은 각각 고유 한 장점이 있으며 프로젝트 요구 사항에 따라 선택합니다. 1.PHP는 웹 개발, 특히 웹 사이트의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 간결한 구문을 가진 데이터 과학, 기계 학습 및 인공 지능에 적합하며 초보자에게 적합합니다.

PHP는 여전히 역동적이며 현대 프로그래밍 분야에서 여전히 중요한 위치를 차지하고 있습니다. 1) PHP의 단순성과 강력한 커뮤니티 지원으로 인해 웹 개발에 널리 사용됩니다. 2) 유연성과 안정성은 웹 양식, 데이터베이스 작업 및 파일 처리를 처리하는 데 탁월합니다. 3) PHP는 지속적으로 발전하고 최적화하며 초보자 및 숙련 된 개발자에게 적합합니다.

PHP는 현대 웹 개발, 특히 컨텐츠 관리 및 전자 상거래 플랫폼에서 중요합니다. 1) PHP는 Laravel 및 Symfony와 같은 풍부한 생태계와 강력한 프레임 워크 지원을 가지고 있습니다. 2) Opcache 및 Nginx를 통해 성능 최적화를 달성 할 수 있습니다. 3) PHP8.0은 성능을 향상시키기 위해 JIT 컴파일러를 소개합니다. 4) 클라우드 네이티브 애플리케이션은 Docker 및 Kubernetes를 통해 배포되어 유연성과 확장 성을 향상시킵니다.

PHP는 특히 빠른 개발 및 동적 컨텐츠를 처리하는 데 웹 개발에 적합하지만 데이터 과학 및 엔터프라이즈 수준의 애플리케이션에는 적합하지 않습니다. Python과 비교할 때 PHP는 웹 개발에 더 많은 장점이 있지만 데이터 과학 분야에서는 Python만큼 좋지 않습니다. Java와 비교할 때 PHP는 엔터프라이즈 레벨 애플리케이션에서 더 나빠지지만 웹 개발에서는 더 유연합니다. JavaScript와 비교할 때 PHP는 백엔드 개발에서 더 간결하지만 프론트 엔드 개발에서는 JavaScript만큼 좋지 않습니다.

PHP와 Python은 각각 고유 한 장점이 있으며 다양한 시나리오에 적합합니다. 1.PHP는 웹 개발에 적합하며 내장 웹 서버 및 풍부한 기능 라이브러리를 제공합니다. 2. Python은 간결한 구문과 강력한 표준 라이브러리가있는 데이터 과학 및 기계 학습에 적합합니다. 선택할 때 프로젝트 요구 사항에 따라 결정해야합니다.

PHP는 서버 측에서 널리 사용되는 스크립팅 언어이며 특히 웹 개발에 적합합니다. 1.PHP는 HTML을 포함하고 HTTP 요청 및 응답을 처리 할 수 있으며 다양한 데이터베이스를 지원할 수 있습니다. 2.PHP는 강력한 커뮤니티 지원 및 오픈 소스 리소스를 통해 동적 웹 컨텐츠, 프로세스 양식 데이터, 액세스 데이터베이스 등을 생성하는 데 사용됩니다. 3. PHP는 해석 된 언어이며, 실행 프로세스에는 어휘 분석, 문법 분석, 편집 및 실행이 포함됩니다. 4. PHP는 사용자 등록 시스템과 같은 고급 응용 프로그램을 위해 MySQL과 결합 할 수 있습니다. 5. PHP를 디버깅 할 때 error_reporting () 및 var_dump ()와 같은 함수를 사용할 수 있습니다. 6. 캐싱 메커니즘을 사용하여 PHP 코드를 최적화하고 데이터베이스 쿼리를 최적화하며 내장 기능을 사용하십시오. 7


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)
