PHP常用文件操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | <?php $path = "/home/work/srccode/hello.go" ; $dirName = dirname( $path ); $name = basename ( $path ); echo $dirName ; echo "\n" ; echo $name ; //获取文件的信息,如dirname、basename、filename、extension $pathInfo = pathinfo ( $path ); var_dump( $pathInfo ); //获取文件类型,如dir、file等 $fileType = filetype ( $path ); var_dump( filetype ( $dirName )); var_dump( $fileType ); //fopen($fileName, $mode)的文件打开方式:<br>/*<br>r 只读方式打开<br>r+ 读写方式打开,文件指针在文件开头,不清空文件内容,新写入的内容覆盖之前的内容,存在新内容与老内容共存情况<br>w 写入方式打开,清空文件内容,文件不存在则尝试创建<br>w+ 读写方式打开,清空文件内容,文件不存在则尝试创建<br>a 写入方式打开,文件指针在文件末尾,文件不存在则尝试创建<br>a+ 读写方式打开,文件指针在文件末尾,文件不存在则尝试创建*/ $f = fopen ( $path , "r" ); //$fileInfo = fstat($f); $fileInfo = stat( $path ); var_dump( $fileInfo ); //文件大小 $fileSize = filesize ( $path ); var_dump( $fileSize ); //将文件内容每行作为一个元素读入数组 $fileContent = file( $path ); var_dump( $fileContent ); //文件所有内容以字符串形式读出来 $fileContent = file_get_contents ( $path ); var_dump( $fileContent ); //fgets默认读取1k字节,如果遇到了换行、EOF或者读取了length-1个字节返回 $length = 2048; $oneLine = fgets ( $f , $length ); var_dump( $oneLine ); //功能类似于fgets,不过会过尝试滤掉PHP和HTML标记。函数定义fgetss(filename, length, tags) $newf = fopen ( "/home/work/srccode/test.html" , "r" ); var_dump( $newf ); echo "---------" ; $newOneLine = fgetss ( $newf , 10000, "<html>" ); var_dump( $newOneLine ); echo "+++++++++++++" ; //判断是否文件结束 //feof($f); //打开一个目录句柄 $handler = opendir( $dirName ); //需要先打开目录句柄,readdir()每次从目录句柄中读取目录中一个内容 while ( $dirContent = readdir( $handler )){ var_dump( $dirContent ); } closedir ( $handler ); //读取目录下的所有文件,以数组形式升序返回 $dirContents = scandir( $dirName ); var_dump( $dirContents ); $dirContents = scandir( $dirName , 1); var_dump( $dirContents ); //判断路径是否是目录 $isDir = is_dir ( $dirName ); var_dump( $isDir ); $isDir = is_dir ( $path ); var_dump( $isDir ); //判断是否是文件 $isFile = is_file ( $dirName . "/link1" ); var_dump( $isFile ); //判断文件属性是否可读 $isReadable = is_readable ( $path ); var_dump( $isReadable ); //检测文件或目录是否存在 $fileExists = file_exists ( $path ); var_dump( $fileExists ); $fileExists = file_exists ( $dirName ); var_dump( $fileExists ); fclose( $f );<br> //将文件指针定位到某个位置,SEEK_SET使用offset作为新位置,SEEK_CUR使用当前位置加offset作为新位置 //SEEK_END使用文件尾加offset作为新位置,offset需要是负值才能定位到文件内容 $offset = 0; $seekRes = fseek ( $f , $offset +10, SEEK_END); $readRes = fread ( $f , 10); var_dump( $readRes ); //删除文件 $fileName = "test" ; //unlink删除文件,结果是bool类型 $unlinkRes = unlink( $fileName ); var_dump( $unlinkRes ); //倒回文件开始的地方,结果是bool类型,如果是a或者a+方式打开,不起作用,总是写在末尾 $rewindRes = rewind ( $f ); //file_put_contents函数默认情况将内容写入文件中,之前的内容被删除 //$mode = FILE_APPEND可以避免删除文件的内容,成功写入返回写入的字节数,失败false $writeByteSize = file_put_contents ( "filename" , "this is data" ); var_dump( $writeByteSize ); <br><br><br> |
//将文件指针定位到某个位置,SEEK_SET使用offset作为新位置,SEEK_CUR使用当前位置加offset作为新位置//SEEK_END使用文件尾加offset作为新位置,offset需要是负值才能定位到文件内容$offset = 0;$seekRes = fseek($f, $offset+10, SEEK_END);$readRes = fread($f, 10);var_dump($readRes);//删除文件$fileName = "test";//unlink删除文件,结果是bool类型$unlinkRes = unlink($fileName);var_dump($unlinkRes);
//倒回文件开始的地方,结果是bool类型,如果是a或者a+方式打开,不起作用,总是写在末尾$rewindRes = rewind($f);
//file_put_contents函数默认情况将内容写入文件中,之前的内容被删除//$mode = FILE_APPEND可以避免删除文件的内容,成功写入返回写入的字节数,失败false$writeByteSize = file_put_contents("filename", "this is data");var_dump($writeByteSize);
学学学 练练练 刷刷刷
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步