<?php $path = "/home/work/srccode/hello.go"; $dirName = dirname($path); $name = basename($path); echo $dirName; echo " "; 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)的文件打开方式:
/*
r 只读方式打开
r+ 读写方式打开,文件指针在文件开头,不清空文件内容,新写入的内容覆盖之前的内容,存在新内容与老内容共存情况
w 写入方式打开,清空文件内容,文件不存在则尝试创建
w+ 读写方式打开,清空文件内容,文件不存在则尝试创建
a 写入方式打开,文件指针在文件末尾,文件不存在则尝试创建
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);
//将文件指针定位到某个位置,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);
//将文件指针定位到某个位置,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);