PHP 常用函数(五)

39个常用文件处理函数

函数名描述实例输入输出操作
fopen()打开文件或者 URL$handle = fopen("ftp://user:password@example.com/somefile.txt", "w");resource fopen ( string filename, string mode [, bool use_include_path [, resource zcontext]] )如果打开失败,本函数返回 FALSE
fclose()关闭一个已打开的文件指针$handle = fopen('somefile.txt', 'r'); fclose($handle);bool fclose(resource handle)如果成功则返回 TRUE,失败则返回 FALSE
文件属性
file_exists()检查文件或目录是否存在$filename = '/path/to/foo.txt'; if (file_exists($filename)) { echo "exists"; } else { echo "does not exist"; }bool file_exists ( string filename )指定的文件或目录存在则返回 TRUE,否则返回 FALSE
filesize()取得文件大小$filename = 'somefile.txt'; echo $filename . ': ' . filesize($filename) . 'bytes';int filesize ( string $filename )返回文件大小的字节数,如果出错返回 FALSE 并生成一条 E_WARNING 级的错误
is_readable()判断给定文件是否可读$filename = 'test.txt'; if (is_readable($filename)) { echo '可读'; } else { echo '不可读'; }bool is_readable ( string $filename )如果由 filename 指定的文件或目录存在并且可读则返回 TRUE
is_writable()判断给定文件是否可写$filename = 'test.txt'; if (is_writable($filename)) { echo '可写'; } else { echo '不可写'; }bool is_writable ( string $filename )如果文件存在并且可写则返回 TRUE。filename 参数可以是一个允许进行是否可写检查的目录名同名函数is_writable()
is_executable()判断给定文件是否可执行$file = 'setup.exe'; if (is_executable($file)) { echo '可执行'; } else { echo '不可执行'; }bool is_executable ( string $filename )如果文件存在且可执行则返回 TRUE
filectime()获取文件的创建时间$filename = 'somefile.txt'; echo filectime($filename);int filectime ( string $filename )时间以 Unix 时间戳的方式返回,如果出错则返回 FALSE
filemtime()获取文件的修改时间$filename = 'somefile.txt'; echo filemtime($filename);int filemtime ( string $filename )返回文件上次被修改的时间,出错时返回 FALSE。时间以 Unix时间戳的方式返回
fileatime()获取文件的上次访问时间$filename = 'somefile.txt'; echo fileatime($filename);int fileatime (string $filename)返回文件上次被访问的时间,如果出错则返回 FALSE。时间以Unix时间戳的方式返回
stat()获取文件大部分属性值$filename = 'somefile.txt'; var_dump(fileatime($filename));array stat (string $filename)返回由 filename 指定的文件的统计信息
文件操作
fwrite()写入文件$filename = 'test.txt'; $somecontent = "添加这些文字到文件\n"; $handle = fopen($filename, 'a'); fwrite($handle, $somecontent); fclose($handle);int fwrite ( resource handle, string string [, int length] )把 string 的内容写入 文件指针 handle 处。 如果指定了 length ,当写入了 length 个字节或者写完了 string 以后,写入就会停止,视乎先碰到哪种情况同名函数 fputs()
fputs()同上同名函数 fwrite()
fread()读取文件$filename = "/usr/local/something.txt"; $handle = fopen($filename, "r"); $contents = fread($handle, filesize ($filename)); fclose($handle);string fread ( int handle, int length )从文件指针 handle,读取最多 length 个字节从文件指针 handle 读取最多 length 个字节
feof()检测文件指针是否到了文件结束的位置$file = @fopen("no_such_file", "r"); while (!feof($file)) { } fclose($file);bool feof ( resource handle )如果文件指针到了 EOF 或者出错时则返回 TRUE,否则返回一个错误(包括 socket 超时),其它情况则返回 FALSE
fgets()从文件指针中读取一行$handle = @fopen("/tmp/inputfile.txt", "r"); if ($handle) { while (!feof($handle)) { $buffer = fgets($handle, 4096); echo $buffer; } fclose($handle); }string fgets ( int handle [, int length] )从 handle 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。
fgetc()从文件指针中读取字符$fp = fopen('somefile.txt', 'r'); if (!$fp) { echo 'Could not open file somefile.txt'; } while (false !== ($char = fgetc($fp))) { echo "$char\n"; }string fgetc ( resource $handle )返回一个包含有一个字符的字符串,该字符从 handle 指向的文件中得到。碰到 EOF 则返回 FALSE
file()把整个文件读入一个数组中$lines = file('http://www.example.com/'); // 在数组中循环,显示 HTML 的源文件并加上行号。 foreach ($lines as $line_num => $line) { echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n"; } // 另一个例子将 web 页面读入字符串。参见 file_get_contents()。 $html = implode('', file ('http://www.example.com/'));array file ( string $filename [, int $use_include_path [, resource $context ]] )数组中的每个单元都是文件中相应的一行,包括换行符在内。如果失败 file() 返回 FALSE
readfile()输出一个文件int readfile ( string $filename [, bool $use_include_path [, resource $context ]] )读入一个文件并写入到输出缓冲。返回从文件中读入的字节数。如果出错返回 FALSE
file_get_contents()将整个文件读入一个字符串echo file_get_contents(‘http://www.baidu.com’);string file_get_contents ( string $filename [, bool $use_include_path [, resource $context [, int $offset [, int $maxlen ]]]] )
file_put_contents()将一个字符串写入文件file_put_contents(‘1.txt’,‘aa’);int file_put_contents ( string $filename , string $data [, int $flags [, resource $context ]] )该函数将返回写入到文件内数据的字节数
ftell()返回文件指针读/写的位置$fp=fopen('tx.txt','r'); fseek($fp,10); echo ftell($fp); fread($fp,4); echo ftell($fp);int ftell ( resource $handle )返回由 handle 指定的文件指针的位置,也就是文件流中的偏移量
fseek()在文件指针中定位$fp=fopen('tx.txt','r'); fseek($fp,10); echo ftell($fp); fread($fp,4); echo ftell($fp);int fseek ( resource $handle , int $offset [, int $whence ] )成功则返回 0;否则返回 -1
rewind()倒回文件指针的位置$fp=fopen('tx.txt','r'); fseek($fp,3); echo ftell($fp); fread($fp,4); rewind($fp); echo ftell($fp);bool rewind ( resource $handle )如果成功则返回 TRUE,失败则返回 FALSE
flock()轻便的咨询文件锁定$fp=fopen('tx.txt','r'); flock($fp, LOCK_SH);//共享锁 //flock($fp, LOCK_EX);//独立锁,写文件时用它打开 //flock($fp, LOCK_NB);//附加锁 flock($fp, LOCK_UN);//释放锁 fclose($fp);bool flock ( int $handle , int KaTeX parse error: Expected 'EOF', got '&' at position 18: …eration [, int &̲wouldblock ] )如果成功则返回 TRUE,失败则返回 FALSE
目录
basename()返回路径中的文件名部分path = "/home/httpd/html/index.php"; $file = basename($path); $file = basename($path,".php");string basename ( string $path [, string $suffix ] )给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。如果文件名是以 suffix 结束的,那这一部分也会被去掉
dirname()返回路径中的目录部分$path = "/etc/passwd"; $file = dirname($path);string dirname ( string $path )给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名
pathinfo()返回文件路径的信息echo '<pre>'; print_r(pathinfo("/www/htdocs/index.html")); echo '</pre>';mixed pathinfo ( string $path [, int $options ] )返回一个关联数组包含有 path 的信息
opendir()打开目录句柄$fp=opendir('E:/xampp/htdocs/php/study/19'); echo readdir($fp); closedir($fp);resource opendir ( string $path [, resource $context ] )如果成功则返回目录句柄的 resource,失败则返回 FALSE
readdir()从目录句柄中读取条目$fp=opendir('E:/xampp/htdocs/php/study/19'); echo readdir($fp); closedir($fp);string readdir ( resource $dir_handle )返回目录中下一个文件的文件名。文件名以在文件系统中的排序返回
closedir()关闭目录句柄$fp=opendir('E:/xampp/htdocs/php/study/19'); echo readdir($fp); closedir($fp);void closedir ( resource $dir_handle )关闭由 dir_handle 指定的目录流。流必须之前被 opendir() 所打开
rewinddir()倒回目录句柄$fp=opendir('E:/xampp/htdocs/php/study/19'); echo readdir($fp).'<br />'; echo readdir($fp).'<br />'; echo readdir($fp).'<br />'; rewinddir($fp); echo readdir($fp).'<br />'; closedir($fp);void rewinddir ( resource $dir_handle )将 dir_handle 指定的目录流重置到目录的开头
mkdir()新建目录mkdir(‘123’);bool mkdir ( string $pathname [, int $mode [, bool $recursive [, resource $context ]]] )尝试新建一个由 pathname 指定的目录
rmdir()删除目录rmdir(‘123’);bool rmdir ( string $dirname )尝试删除 dirname 所指定的目录。 该目录必须是空的,而且要有相应的权限。如果成功则返回 TRUE,失败则返回 FALSE
unlink()删除文件unlink(‘123/1.txt’); rmdir(‘123’);bool unlink ( string $filename )删除 filename 。和 Unix C 的 unlink() 函数相似。如果成功则返回 TRUE,失败则返回 FALSE
copy()拷贝文件copy(‘index.php’,‘index.php.bak’);bool copy ( string $source , string $dest )将文件从 source 拷贝到 dest 。如果成功则返回 TRUE,失败则返回 FALSE
rename()重命名一个文件或目录rename(‘tx.txt’,‘txt.txt’);bool rename ( string $oldname , string $newname [, resource $context ] )如果成功则返回 TRUE,失败则返回 FALSE
文件的上传与下载
is_uploaded_file()判断文件是否是通过 HTTP POST 上传的if(is_uploaded_file($_FILES['bus']['tmp_name'])){ if( move_uploaded_file($_FILES['bus']['tmp_name'], $NewPath) ){ echo '上传成功<br /><img src="'.$NewPath.'">'; }else{ exit('失败'); } }else{ exit('不是上传文件'); }bool is_uploaded_file ( string $filename )
move_uploaded_file()将上传的文件移动到新位置if(is_uploaded_file($_FILES['bus']['tmp_name'])){ if( move_uploaded_file($_FILES['bus']['tmp_name'], $NewPath) ){ echo '上传成功<br /><img src="'.$NewPath.'">'; }else{ exit('失败'); } }else{ exit('不是上传文件'); }bool move_uploaded_file ( string $filename , string $destination )
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值