MENU

php文件操作

• June 2, 2018 • Read: 96 • Code

[title]文件目录函数库[/title]

文件目录函数库是php的核心函数库,可以通过其提供的API完成其对文件及目录的常用操作。

[success]文件信息相关函数[/success]

<?php
header('content-type:text/html;charset:utf-8');
date_default_timezone_set('PRC');
 /*
 文件信息相关API
  */
 $filename = './test1.php';
 //filetype($filename):获取文件的类型,返回的是文件的类型
 echo '文件类型为:', filetype($filename),'<br />';
 //filesize($filename):获取文件的大小,返回的是文件的大小字节数
echo filesize($filename), '<br />';
//filectime($filename):获取文件的创建时间,返回的是时间戳
echo '文件创建时间为:', filectime($filename), '<br />';
echo '文件创建时间为:', date('Y年m月d日 H:i:s', filectime($filename)), '<br />';
//filemtime($filename):文件的修改时间
echo '文件的修改时间为:', date('Y年m月d日 H:i:s', filemtime($filename)), '<br />';
//fileatime($filename):文件的最后访问 时间
echo '文件的最后访问时间为:', date('Y年m月d日 H:i:s', fileatime($filename)), '<br />';
echo '<hr />';
//检测文件是否可读、可写、可执行is_readable(),is_writeable()、is_executable()
var_dump(
  is_readable($filename),
  is_writeable($filename),
  is_executable($filename)
);
//is_file:检测是否为文件,并且文件存在
var_dump(is_file($filename));

[success]文件路径相关[/success]

<?php
header('content-type:text/html;charset:utf-8');
/*
pathinfo($filename):文件路径相关信息
 */
$filename = './test1.php';
$pathinfo = pathinfo($filename);
var_dump($pathinfo);
/**
 * array (size=4)
 *'dirname' => string '.' (length=1)
 *'basename' => string 'test1.php' (length=9)
 *'extension' => string 'php' (length=3)
 *'filename' => string 'test1' (length=5)
 */
echo '文件的扩展名', pathinfo($filename, PATHINFO_EXTENSION), '<br />';
echo '<hr />';
$filename = __FILE__;
echo $filename, '<br />';
echo pathinfo($filename, PATHINFO_DIRNAME), '<br />';//路径
echo pathinfo($filename, PATHINFO_BASENAME), '<br />';//文件名
echo pathinfo($filename, PATHINFO_EXTENSION), '<br />';//扩展名
echo pathinfo($filename, PATHINFO_FILENAME), '<br />';//主文件名
echo '<hr />';
//basename($filename):返回路径中的文件名部分
echo basename($filename), '<br />';
echo basename($filename, '.php');
echo '<hr />';
/**
 * test2.php
 *test2
 */
//dirname($filename):返回文件名中路径部分
echo dirname($filename);
//file_exists($filename):检测文件或目录是否存在
var_dump(file_exists($filename));

[title]文件相关操作API[/title]

touch($filename):创建文件

unlink($filename):删除指定文件

rename:重命名或剪切文件,也可以重命名目录
拷贝远程文件需要开启PHP配置文件中的allow_url_fopen=On(出于安全考虑此选项只能在php.ini中设置)

[title]文件内容相关操作API[/title]

<?php
header('content-type:text/html;charset:utf-8');
/**
 * 和文件内容相关的操作
 */
$filename = './1.txt';
//fopen($filename):打开指定文件,以指定的方式来打开
$handle = fopen($filename, 'r');
//fread:读取文件内容,指针位置会移动到读取的最后一位
$res = fread($handle, 6);
echo $res, '<br />';
echo fread($handle, 6), '<br />';
echo '<hr />';
//fseek:重置指针
fseek($handle, 0);
echo fread($handle, 6);
//fclose:关闭文件
fclose($handle);
<?php
header('content-type:image/jpeg');
$filename = './mylove.jpg';
$handle = fopen($filename, 'rb+');
$res = fread($handle, filesize($filename));
fclose($handle);
echo $res;

读取照片

写入文件,以可写的方式打开,fwrite()/fputs()

<?php
header('content-type:text/html;charset:utf-8');
$filename = __DIR__.'/1.txt';
// echo $filename;
// $handle = fopen($filename, 'rb');//以读的方式打开
// echo fread($handle, filesize($filename));
// fclose($handle);
$handle = fopen($filename, 'rb+');
//fwrite()/fputs():想文件中写入内容
  fwrite($handle, 'test123');
  fwrite($handle, '333', 2);//只写入33
  //两次写入的效果为test12333,并且覆盖原来的那几个位置
  fclose($handle);
<?php
header('content-type:text/html;charset:utf-8');
$filename = __DIR__.'/1.txt';//如果文件不存在的话会先创建文件
$handle = fopen($filename, 'wb');
fputs($handle, '今天你瘦了么?'.PHP_EOL);//PHP_EOL是常量,跨操作系统的换行符
fputs($handle, '好像并没有!');
fclose($handle);