ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 目录操作 ~~~ $path='c:\demo\index.php'; ~~~ * 解析目录 **basename** ~~~ echo basename($path); ~~~ 返回路径中的文件名部分,包含后缀 * 获取路径目录 **dirname** ~~~ echo dirname($path); ~~~ **pathinfo()** 路径的数组,包含目录名,文件名,后缀名 ~~~ pathinfo($path); //返回 Array ( [dirname] => c:\demo [basename] => index.php [extension] => php [filename] => index ) ~~~ **realpath()** 获取文件的绝对路径 ## 磁盘目录和文件计算 ### filesize($path); 返回文件字节数 filesize($a)/1024 ,返回kb,round(filesize($a)/1024); ### disk_free_space 计算磁盘的可用空间 disk_free_space('C:')/1024/1024/1024 GB ### disk_total_space('c:'); 磁盘总空间 文件最后访问时间 ### fileatime($path) 文件最后改变时间(文件权限修改) ### filectime($path) 文件修改时间(内容修改) ### filemtime($path) ## 文件处理 文件处理3步骤:打开文件,读取文件,关闭文件 ### fwirte() 文件写入 fwrite($fp,'123456'); ~~~ $fp=fopen('a.txt','w'); $str="this is shchuanku"; fwrite($fp,$str,strlen($str)); ~~~ 只有一句话,不需要任何操作操作的时候,可以用: ### file_put_contents() 不需要用fopen打开文件,不需要用fclose关闭文件 `file_put_contents('a.txt', 'is a bok');` ### file_get_contents() 读取数据到缓存区 也就是: `file_put_contents等同于fopen+fwirte+fclose` **\r\n可以让文本换行** #### readfile() 读取全部,具备echo功能,fpassthru()读取剩余的 ~~~ echo readfile('a.txt'); ~~~ #### fopen ~~~ r 打开文件为只读。文件指针在文件的开头开始。 w 打开文件为只写。删除文件的内容或创建一个新的文件,如果它不存在。文件指针在文件的开头开始。 a 打开文件为只写。文件中的现有数据会被保留。文件指针在文件结尾开始。创建新的文件,如果文件不存在。 x 创建新文件为只写。返回 FALSE 和错误,如果文件已存在。 r+ 打开文件为读/写、文件指针在文件开头开始。 w+ 打开文件为读/写。删除文件内容或创建新文件,如果它不存在。文件指针在文件开头开始。 a+ 打开文件为读/写。文件中已有的数据会被保留。文件指针在文件结尾开始。创建新文件,如果它不存在。 x+ 创建新文件为读/写。返回 FALSE 和错误,如果文件已存在。 ~~~ 比readfile更好的是fopen,提供更多的参数 * fread() * fgets() 读取单行 * fgetss()//读取行,并过滤HTML * fpassthru(),输出指针后面剩余的全部内容,具备echo打印功能 * fclose() * feof() 文件指针是否到达末尾,while循环配合fgets(),或者fgetsc() * fgetc 从文件中读取单个字符 * file('a.txt') 按照每行分组存放,放在一个数组中 ~~~ ~~~ ~~~ fopen(); 第一个参数打开文件名 第二个参数打开模式 //打开文件 $myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!"); //读取文件 //读取单行,每运行一次函数,指针向下运行一行 echo fgets($myfile); //第二个参数,读取的最大字节数,下面读取到文件结尾 echo fread($myfile,filesize("webdictionary.txt")); //关闭文件,减少服务器资源 fclose($myfile); ~~~ ### 查看文件或目录是否存在 文件存在的时候,才读取,否则报错 **file_exists();** ~~~ if(file_exists('a.txt')){ #code }else{ echo :"文件不存在"; } ~~~ ### 查看文件大小 filesize('a.txt'); ### 删除文件 unlink('a.txt'); ### rewind() 指针回到文件最开头 在fgetc的过程中可以使用 ### ftell() 返回文件指针的位置 ### fseek() 设定文件指针的位置 ### flock() 锁定文件,读写文件的时候 flock($fp,LOCK_EX); flock($fp,LOCK_UN); ### opendir() ### readdir() ### closedir() ###rmdir();//删除目录,文件通过unlink()删除 ###rename()//重命名,目录和文件都能修改 ~~~ $dir=opendir('d:'); while($file=readdir($dir)){ echo $file.'<br/>'; } closedir($dir); ~~~ ### 文件上传 ~~~ //第一个参数是input name $_FILES["file"]["name"] - 被上传文件的名称 $_FILES["file"]["type"] - 被上传文件的类型 $_FILES["file"]["size"] - 被上传文件的大小,以字节计 $_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称 $_FILES["file"]["error"] - 由文件上传导致的错误代码 ~~~ ~~~ <?php if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 20000)) { if ($_FILES["file"]["error"] > 0) { echo "Error: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br />"; echo "Type: " . $_FILES["file"]["type"] . "<br />"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Stored in: " . $_FILES["file"]["tmp_name"]; } } else { echo "Invalid file"; } ?> ~~~