根据PHP常用文件函数和目录函数整理,PHP常用文件函数和目录函数整理

by admin on 2019年2月7日

一、常用文件函数库

一、常用文件函数库

一、常用文件函数库

1 文件与目录

  1、basename(); — 重回路径中的文件名部分。

string basename ( string $path [, string $suffix ] )
//给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。

  参数:path一个路径。在 Windows
中,斜线(/)和反斜线(\)都可以用作目录分隔符。在其他环境下是斜线(/

   suffix假定文件名是以 suffix 停止的,那这一有的也会被去掉。

  返回值:返回 path 的主干的文本名。

$path = 'd:/test/test.txt';

echo basename($path);
echo "<br>";
echo basename($path,'.txt');

 


  1、basename(); — 重回路径中的文件名部分。

string basename ( string $path [, string $suffix ] )
//给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。

  参数:path一个门路。在 Windows
中,斜线(/)和反斜线(\)都足以当做目录分隔符。在其他环境下是斜线(/

   suffix假定文件名是以 suffix 停止的,那这一部分也会被去掉。

  返回值:返回 path 的主导的文件名。

$path = 'd:/test/test.txt';

echo basename($path);
echo "<br>";
echo basename($path,'.txt');

 


1、basename(); —
再次回到路径中的文件名部分。

1.1 解析目录路径

  1. 回到路径中的文件名部分
    string basename(string path, [, string suffix])
    要是提供了可选参数suffix,当重回的文本名包括这几个伸张名时将忽略该后缀。

echo "1) ".basename("/etc/sudoers.d", ".d").PHP_EOL;
echo "2) ".basename("/etc/passwd").PHP_EOL;
echo "3) ".basename("/etc/").PHP_EOL;
echo "4) ".basename(".").PHP_EOL;
echo "5) ".basename("/");

//输出
1) sudoers
2) passwd
3) etc
4) .
5) 
  1. 赢得路径的目录
    string dirname(string path)
    回来路径的目录部分。

echo "1) " . dirname("/etc/passwd") . PHP_EOL; // 1) /etc
echo "2) " . dirname("/etc/") . PHP_EOL; // 2) / (or \ on Windows)
echo "3) " . dirname("."); // 3) .
  1. 越多关于路径的新闻
    array pathinfo(string path [, options])
    回去一个关乎数组,其中包罗路径的四有些新闻:目录名、基本名、增加名和文书名

$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');

echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n"; // since PHP 5.2.0

//输出
/www/htdocs/inc
lib.inc.php
php
lib.inc
  1. 回来规范化的相对化路径名
    string realpath(string path)
    将path中的所有符号链接和相对路径引用转换为对应的硬链接和相对路径。
    realpath() 伸张所有的号子连接并且处理输入的 path 中的 ‘/./’, ‘/../’
    以及多余的 ‘/’
    并回到规范化后的断然路径名。再次来到的门径中一直不标记连接,’/./’ 或
    ‘/../’ 成分
    在 Windows 上,realpath() 会将 unix 风格的门径改成 Windows 风格的。

  2、dirname(); — 再次来到路径中目录部分

string dirname ( string $path )
//给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名。

  参数:path,一个途径。在 Windows
中,斜线(/)和反斜线(\)都足以看做目录分隔符。在其余环境下是斜线(/根据PHP常用文件函数和目录函数整理,PHP常用文件函数和目录函数整理。)。

  重返值:再次回到 path 的父目录。 若是在 path 中从不斜线,则赶回一个点(’.‘),表示当前目录。否则重返的是把path 中最终的 /component(最终一个斜线以及背后部分)去掉之后的字符串。

$path = 'd:/test/test.txt';

echo basename($path);
echo "<br>";
echo basename($path,'.txt');
echo "<br>";
echo dirname($path);

 


  2、dirname(); — 重临路径中目录部分

string dirname ( string $path )
//给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名。

  参数:path,一个路子。在 Windows
中,斜线(/)和反斜线(\)都能够看成目录分隔符。在其余环境下是斜线(/)。

  重返值:再次回到 path 的父目录。 若是在 path 中从不斜线,则赶回一个点(’.‘),表示当前目录。否则重返的是把path根据PHP常用文件函数和目录函数整理,PHP常用文件函数和目录函数整理。 中末了的 /component(最终一个斜线以及背后部分)去掉之后的字符串。

$path = 'd:/test/test.txt';

echo basename($path);
echo "<br>";
echo basename($path,'.txt');
echo "<br>";
echo dirname($path);

 


string basename ( string $path [, string $suffix ] )
//给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。  

1.2 总括文件、目录和磁盘大小

  1. 规定文件的大小
    int filesize(string filename)重返指定文件的大大小小,以字节为单位。

  2. 计量磁盘的可用空间
    float disk_free_space(string
    directory)再次来到指定目录所在磁盘分区的可用空间,以字节为单位。

  3. 算算磁盘的总容量
    float disk_total_space(string
    directory)重回指定目录所在的磁盘分区的总容量,以字节为单位。

  4. 得到目录大小,自定义函数

function directorySize($directory){
    $directorySize = 0;
    if($dh = @opendir($directory)){
        while($filename != “.” && $filename != “..”){
            if(is_file($directory.”/”.$filename))
                $directorySize += filesize($directory.”/”.$filename);

            if(is_dir($directory.”/”.$filename))
                $directorySize += directorySize($directory.”/”.$filename);
        }
    }
}

   3、pathinfo();  –再次来到文件路径的新闻

mixed pathinfo ( string $path [, int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME ] )
//pathinfo() 返回一个关联数组包含有 path 的信息。返回关联数组还是字符串取决于 options。

  参数: path  要解析的路径。
     options 如果指定了,将会返回指定元素;它们包括:PATHINFO_DIRNAME,PATHINFO_BASENAME 和PATHINFO_EXTENSION 或 PATHINFO_FILENAME。如果没有指定 options 默认是返回全部的单元。
  返回值:如果没有传入 options ,将会返回包括以下单元的数组 array:dirname,basename 和 extension(如果有),以 及filename。   

$path = 'd:/test/test.txt';
var_dump(pathinfo($path));

 


   3、pathinfo();  –重返文件路径的音讯

mixed pathinfo ( string $path [, int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME ] )
//pathinfo() 返回一个关联数组包含有 path 的信息。返回关联数组还是字符串取决于 options。

  参数: path  要解析的路径。
     options 如果指定了,将会返回指定元素;它们包括:PATHINFO_DIRNAME,PATHINFO_BASENAME 和PATHINFO_EXTENSION 或 PATHINFO_FILENAME。如果没有指定 options 默认是返回全部的单元。
  返回值:如果没有传入 options ,将会返回包括以下单元的数组 array:dirname,basename 和 extension(如果有),以 及filename。   

$path = 'd:/test/test.txt';
var_dump(pathinfo($path));

 


参数:path 一个路线。在 Windows
中,斜线(/)和反斜线(\)都得以当作目录分隔符。在其余环境下是斜线(/)

1.3 确定访问和改动时间

  1. 取得文件的上次访问时间
    int fileatime(string
    filename)重返文件最后的走访时间,选拔UNIX时间戳格式。

  2. 取得文件的 inode 修改时间
    int filectiome(string filename)

  3. 规定文件的末段修改时间
    int filemtime(string filename) 重回文件的结尾修改时间。

   4、filetype();–取得文件类型

string filetype ( string $filename )
//返回文件的类型。

  参数: filename 文件的路径。

  返回值: 返回文件的类型。 可能的值有 fifo,char,dir,block,link,file 和 unknown。如果出错则返回 FALSE。如果 stat 调用失败或者文件类型未知的话 filetype() 还会产生一个 E_NOTICE 消息。

$path = 'd:/test/test.txt';
echo filetype($path);
//结果file

 


   4、filetype();–取得文件类型

string filetype ( string $filename )
//返回文件的类型。

  参数: filename 文件的路径。

  返回值: 返回文件的类型。 可能的值有 fifo,char,dir,block,link,file 和 unknown。如果出错则返回 FALSE。如果 stat 调用失败或者文件类型未知的话 filetype() 还会产生一个 E_NOTICE 消息。

$path = 'd:/test/test.txt';
echo filetype($path);
//结果file

 


suffix 如若文件名是以 suffix 为止的,那这一部分也会被去掉。

2 文件处理

  5、fstat()和stat();

  
⑴、fstat()-通过已开拓的公文指针取得文件消息

array fstat ( resource $handle )
//获取由文件指针 handle 所打开文件的统计信息。本函数和 stat() 函数相似,除了它是作用于已打开的文件指针而不是文件名。

  参数:handle 文件系统指针,是超人地由 fopen() 创建的 resource(资源)。

    
再次来到值: 重临一个数组具有该文件的计算音信,该数组的格式详细表明于手册中 stat() 页面里。  

  ⑵、stat() –给出文件的音信

array stat ( string $filename )
//获取由 filename 指定的文件的统计信息。如果 filename 是符号连接,则统计信息是关于被连接文件本身的,而不是符号连接。
//lstat() 和 stat() 相同,只除了它会返回符号连接的状态。

  参数:filename文件的路径.

$path = 'd:/test/test.txt';

$fp = fopen("d:/test/test.txt","r");
$fstat = fstat($fp);
fclose($fp);
var_dump($fstat);

 


  5、fstat()和stat();

  
⑴、fstat()-通过已开辟的文书指针取得文件音讯

array fstat ( resource $handle )
//获取由文件指针 handle 所打开文件的统计信息。本函数和 stat() 函数相似,除了它是作用于已打开的文件指针而不是文件名。

  参数:handle 文件系统指针,是名列三甲地由 bf88必发唯一官网,fopen() 创建的 resource(资源)。

    
再次来到值: 重回一个数组具有该公文的统计新闻,该数组的格式详细表明于手册中 stat() 页面里。  

  ⑵、stat() –给出文件的音讯

array stat ( string $filename )
//获取由 filename 指定的文件的统计信息。如果 filename 是符号连接,则统计信息是关于被连接文件本身的,而不是符号连接。
//lstat() 和 stat() 相同,只除了它会返回符号连接的状态。

  参数:filename文件的路径.

$path = 'd:/test/test.txt';

$fp = fopen("d:/test/test.txt","r");
$fstat = fstat($fp);
fclose($fp);
var_dump($fstat);

 


返回值:回来 path
的中坚的文件名。

2.1 打开和倒闭文件

  1. 打开文件或者 URL
    resource fopen(string resource, string mode [, int
    use_include_path [, resource context]])
    为移植性考虑,强烈提出在用 fopen() 打开文件时连连选用 ‘b’ 标记。

//fopen() 中 mode 的可能值列表

'r' 只读方式打开,将文件指针指向文件头。
'r+'    读写方式打开,将文件指针指向文件头。
'w' 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
'w+'    读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
'a' 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
'a+'    读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
'x' 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。
'x+'    创建并以读写方式打开,其他的行为和 'x' 一样。
'c' Open the file for writing only. If the file does not exist, it is created. If it exists, it is neither truncated (as opposed to 'w'), nor the call to this function fails (as is the case with 'x'). The file pointer is positioned on the beginning of the file. This may be useful if it's desired to get an advisory lock (see flock()) before attempting to modify the file, as using 'w' could truncate the file before the lock was obtained (if truncation is desired, ftruncate() can be used after the lock is requested).
'c+'    Open the file for reading and writing; otherwise it has the same behavior as 'c'.
  1. 关闭文件
    boolean fclose(resource filehandle)
    filehandle必须是选用fopen()或fsockopen()打开的已存在的公文指针。

  6、filesize();–取得文件大小

int filesize ( string $filename )
//取得指定文件的大小。

  参数:filename 文件的门道。

  重回值:再次回到文件大小的字节数,如若出错再次来到 FALSE 并生成一条 E_WARNING 级的荒谬。

<?php

// 输出类似:test.txt:   bytes

$filename = 'd:/test/test.txt';
echo $filename . ': ' . filesize($filename) . ' bytes';

?>
//结果:d:/test/test.txt: 12 bytes

 


  6、filesize();–取得文件大小

int filesize ( string $filename )
//取得指定文件的大小。

  参数:filename 文件的途径。

  再次来到值:重回文件大小的字节数,要是出错重返 FALSE 并生成一条 E_WARNING 级的荒唐。

<?php

// 输出类似:test.txt:   bytes

$filename = 'd:/test/test.txt';
echo $filename . ': ' . filesize($filename) . ' bytes';

?>
//结果:d:/test/test.txt: 12 bytes

 


$path = 'd:/test/test.txt';

echo basename($path);
echo "<br>";
echo basename($path,'.txt'); 

2.2 读取文件

  1. 把全部文件读入一个数组中
    array file(string filename [int use_include_path [, resource
    context]]) 可以将文件读取到数组中,换行符附加在各种元素的末尾。
    留神:file()很卓越,它不像别的读写函数,它不必建立文件句柄来读取文件内容。

  2. 将一切文件读入一个字符串
    string file_get_contents(string filename [int use_include_path
    [, resource context [, int offset [, int maxlen]]]])
    将文件中的内容读到字符串中。

file_get_contents 还可以用来发送post请求:

$opts = array('http' =>
  array(
    'method'  => 'POST',
    'header'  => "Content-Type: text/xml\r\n".
      "Authorization: Basic ".base64_encode("$https_user:$https_password")."\r\n",
    'content' => $body,
    'timeout' => 60
  )
);

$context  = stream_context_create($opts);
$url = 'https://'.$https_server;
$result = file_get_contents($url, false, $context, -1, 40000);
  1. 从文件指针中读取一行
    string fgets(resource handel [, int length])
    从 handle 指向的文件中读取一行并赶回长度最多为 length – 1
    字节的字符串。遇到换行符(包涵在回到值中)、EOF 或者曾经读取了
    length – 1 字节后终止(看先境遇那一种情况)。假设没有点名
    length,则默许为 1K,或者说 1024 字节。

//逐行读取文件
$handle = @fopen("/tmp/inputfile.txt", "r");
if ($handle) {
    while (($buffer = fgets($handle, 4096)) !== false) {
        echo $buffer;
    }
    if (!feof($handle)) {
        echo "Error: unexpected fgets() fail\n";
    }
    fclose($handle);
}
  1. 从文件指针中读取一行并过滤掉 HTML 标记
    string fgetss(resource handle, int length [, string
    allowable_tags])
    和fgets()函数类似,只是它从输入中革除所有HTML和PHP标签。假设要不经意某些标签,就把其放入allowable_tags中。参数
    length 从 PHP 5 起开始可选。

  2. 从文件指针中读取字符
    stirng fgetc(resource handel)

$fp = fopen('somefile.txt', 'r');
if (!$fp) {
    echo 'Could not open file somefile.txt';
}
while (false !== ($char = fgetc($fp))) {
    echo "$char\n";
}
  1. 读取文件
    string fread(resource handle, int length)
    fread不考虑换行符,当读取了length个字节或到达了EOF则停止,它促进读取二进制文件。只要使用filesize()确定了应当读取的字符数,就能很方便使用那些函数读取整个文件。
    一旦只是想将一个文本的内容读入到一个字符串中,用
    file_get_contents(),它的质量比上边的代码好得多。

$handle = fopen("http://www.example.com/", "rb");
$contents = '';
while (!feof($handle)) {
  $contents .= fread($handle, 8192);
}
fclose($handle);
  1. 输出文件
    int readfile(string filename [, int use_include_path])
    读取由filename指定的一切文件,马上输出到缓冲区并重回读取的字节数。

$file = 'monkey.gif';

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="'.basename($file).'"');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    readfile($file);
    exit;
}
//会在客户端弹出一个可下载文件
  1. 据悉预约义的格式读取文件
    mixed fscanf(resource handle, string format [, string var1])
    按照预定义的格式解析资源

$handle = fopen("users.txt", "r");
while ($userinfo = fscanf($handle, "%s\t%s\t%s\n")) {
    list ($name, $profession, $countrycode) = $userinfo;
    //... do something with the values
}
fclose($handle);

//users.txt
javier  argonaut        pe
hiroshi sculptor        jp
robert  slacker us
luigi   florist it
  1. 从文件指针中读入一行并分析 CSV 字段
    array fgetcsv(resource handle [, int length [, string delimiter
    [, string enclosure]]])
    省略length或将其设为0都会导致肆意的行长度。可以设置一个比最大行大的数值用来进步品质。

//file()和list()可以实现fgetcsv()函数的功能

$users = file(“/usr/data/s.csv”);
foreach($users as $user){
    list($name, $email, $phone) = explode(‘,’, $user);
    ….
}
//这种方式客观性更强一些。使用fgetcsv()时如果希望遇到换行符停止,那么不能指定长度,否则不可控。
  1. 测试文件指针是不是到了文本停止的义务
    bool feof ( resource $handle )
    比方文件指针到了 EOF 或者出错时则赶回 TRUE,否则再次回到一个不当(包括socket 超时),其余情况则赶回 FALSE。

//如果传递的文件指针无效可能会陷入无限循环中,因为 feof() 不会返回 TRUE。
// 如果文件不可读取或者不存在,fopen 函数返回 FALSE
$file = @fopen("no_such_file", "r");

// 来自 fopen 的 FALSE 会发出一条警告信息并在这里陷入无限循环
while (!feof($file)) {
}

fclose($file);
  1. 反省文件或目录是不是留存
    bool file_exists ( string $filename )

   7、disk_free_space(); — 再次回到目录中的可用空间

float disk_free_space ( string $directory )
//给出一个包含有一个目录的字符串,本函数将根据相应的文件系统或磁盘分区返回可用的字节数。

参数:directory 
文件系统目录或者磁盘分区。

header("Content-Type:Text/html;charset=utf8");
$path = 'd:/test/test.txt';
$df = disk_free_space("d:/");
echo $df."字节";

 


   7、disk_free_space(); — 重回目录中的可用空间

float disk_free_space ( string $directory )
//给出一个包含有一个目录的字符串,本函数将根据相应的文件系统或磁盘分区返回可用的字节数。

参数:directory 
文件系统目录或者磁盘分区。

header("Content-Type:Text/html;charset=utf8");
$path = 'd:/test/test.txt';
$df = disk_free_space("d:/");
echo $df."字节";

 


2、dirname(); —
再次回到路径中目录部分

2.3 将字符串写入文件

int fwrite(resource handle ,string string [, int length])
将字符串的情节输出到指定的资源中。

//If writing twice to the file pointer, then the data will be appended to the end of the file content:
$fp = fopen('data.txt', 'w');
fwrite($fp, '1');
fwrite($fp, '23');
fclose($fp);

// the content of 'data.txt' is now 123 and not 23!

  8、disk_total_space(); –重临一个索引的磁盘总大小

float disk_total_space ( string $directory )
//给出一个包含有一个目录的字符串,本函数将根据相应的文件系统或磁盘分区返回所有的字节数。 【译者注】本函数返回的是该目录所在的磁盘分区的总大小,因此在给出同一个磁盘分区的不同目录作为参数所得到的结果完全相同。 在 Unix 和 Windows 200x/XP 中都支持将一个磁盘分区加载为一个子目录,这时正确使用本函数就很有意义。

  参数:directory文件系统的目录或者磁盘分区

 


  8、disk_total_space(); –重返一个目录的磁盘总大小

float disk_total_space ( string $directory )
//给出一个包含有一个目录的字符串,本函数将根据相应的文件系统或磁盘分区返回所有的字节数。 【译者注】本函数返回的是该目录所在的磁盘分区的总大小,因此在给出同一个磁盘分区的不同目录作为参数所得到的结果完全相同。 在 Unix 和 Windows 200x/XP 中都支持将一个磁盘分区加载为一个子目录,这时正确使用本函数就很有意义。

  参数:directory文件系统的目录或者磁盘分区

 


string dirname ( string $path )
//给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名。 

2.4 移动文件指针

  1. 将文件指针移到偏移量指定的地方
    int fseek(resource handle, int offset [, int whence])

  2. 赢得当前指针的偏移量
    int ftell(resource handle)

  3. 将文件指针移回至文件起始处
    int rewind(resource handle)

$handle = fopen('output.txt', 'r+');

fwrite($handle, 'Really long sentence.');
rewind($handle);
fwrite($handle, 'Foo');
rewind($handle);

echo fread($handle, filesize('output.txt'));

fclose($handle);

//输出
Foolly long sentence.

  9、fopen($filepath,$mode) 

resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )
//fopen() 将 filename 指定的名字资源绑定到一个流上

  参数:filename 如果 filename 是
“scheme://…” 的格式,则被当成一个 URL,PHP
将追寻协议处理器(也被称作封装协议)来拍卖此格局。如果该协议没有注册封装协议,PHP
将生出一条音信来援救检查脚本中潜在的标题并将 filename 当成一个普通的公文名继续执行下去。

    

fopen() 中 mode 的可能值列表
mode 说明
‘r’ 只读方式打开,将文件指针指向文件头。
‘r+’ 读写方式打开,将文件指针指向文件头。
‘w’ 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
‘w+’ 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
‘a’ 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
‘a+’ 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
‘x’ 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。
‘x+’ 创建并以读写方式打开,其他的行为和 ‘x’ 一样。
<?php
$handle = fopen("/home/rasmus/file.txt", "r");
$handle = fopen("/home/rasmus/file.gif", "wb");
$handle = fopen("http://www.example.com/", "r");
$handle = fopen("ftp://user:password@example.com/somefile.txt", "w");
?>

 


  9、fopen($filepath,$mode) 

resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )
//fopen() 将 filename 指定的名字资源绑定到一个流上

  参数:filename 如果 filename 是
“scheme://…” 的格式,则被当成一个 URL,PHP
将追寻协议处理器(也被喻为封装协议)来拍卖此形式。要是该协议没有注册封装协议,PHP
将发出一条音讯来协助检查脚本中神秘的题材并将 filename 当成一个常见的文本名继续执行下去。

    

fopen() 中 mode 的可能值列表
mode 说明
‘r’ 只读方式打开,将文件指针指向文件头。
‘r+’ 读写方式打开,将文件指针指向文件头。
‘w’ 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
‘w+’ 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
‘a’ 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
‘a+’ 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
‘x’ 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。
‘x+’ 创建并以读写方式打开,其他的行为和 ‘x’ 一样。
<?php
$handle = fopen("/home/rasmus/file.txt", "r");
$handle = fopen("/home/rasmus/file.gif", "wb");
$handle = fopen("http://www.example.com/", "r");
$handle = fopen("ftp://user:password@example.com/somefile.txt", "w");
?>

 


参数:path,一个途径。在 Windows
中,斜线(/)和反斜线(\)都得以当做目录分隔符。在任何环境下是斜线(/)。

2.5 读取目录内容

  1. 判定给定文件名是或不是是一个目录
    bool is_dir ( string $filename )

  2. 打开目录句柄
    resource opendir(string path, [, resource context])

  3. 关闭目录句柄
    void closedir(resource directory_handle)

  4. 浅析目录内容
    string readdir(resource dir_handle)
    再次回到目录中下一个文本的文书名。文件名以在文件系统中的排序再次来到。

  5. 将引得读入数组
    array scandir(string directory [, int sorting_order [, resource
    context]])

   10、file();–把全副文件读入一个数组中

array file ( string $filename [, int $flags = 0 [, resource $context ]] )
//把整个文件读入一个数组中。

  参数:filename 文件的路线。

     flags可选参数 flags 能够是以下一个或多个常量:

1``、FILE_USE_INCLUDE_PATH在 include_path 中查找文件。2、FILE_IGNORE_NEW_LINES在数组每个元素的最终不要添加换行符
3、FILE_SKIP_EMPTY_LINES跳过空行。

context 一个上下文资源,创建stream_context_create()函数。

<?php
// 将一个文件读入数组。本例中通过 HTTP 从 URL 中取得 HTML 源文件。
$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/'));
// 从 PHP 5 开始可以使用可选标记参数
$trimmed = file('somefile.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
?>

 


   10、file();–把一切文件读入一个数组中

array file ( string $filename [, int $flags = 0 [, resource $context ]] )
//把整个文件读入一个数组中。

  参数:filename 文件的路线。

     flags可选参数 flags 可以是以下一个或七个常量:

1``、FILE_USE_INCLUDE_PATH在 include_path 中查找文件。2、FILE_IGNORE_NEW_LINES在数组每个元素的末梢不要添加换行符
3、FILE_SKIP_EMPTY_LINES跳过空行。

context 一个上下文资源,创建stream_context_create()函数。

<?php
// 将一个文件读入数组。本例中通过 HTTP 从 URL 中取得 HTML 源文件。
$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/'));
// 从 PHP 5 开始可以使用可选标记参数
$trimmed = file('somefile.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
?>

 


返回值:归来 path 的父目录。
如若在 path
中从不斜线,则赶回一个点(’.’),表示当前目录。否则再次回到的是把path
中最后的 /component(最终一个斜线以及背后部分)去掉之后的字符串。

3 执行shell命令

  1. 新建目录
    bool mkdir ( string $pathname [, int $mode = 0777 [, bool
    $recursive = false [, resource $context ]]] )
    默许的 mode 是 0777,意味着最大可能的访问权。

  2. 除去目录
    int rmdir(string dirname)
    品尝删除 dirname 所指定的目录。
    该目录必须是空的,而且要有对应的权力。 败北时会暴发一个 E_WARNING
    级其余荒谬。

  3. 重命名一个文书或目录
    boolean rename(string oldname, string newname [, resource
    context])

rename ("/folder/file.ext", "/folder/newfile.ext");
  1. 设定文件的走访和修改时间
    int touch(string filename [, int time [, int atime]])
    文件不存在将开创空文件

参考文献

  • PHP
    处理公事和操作系统
  • 文件系统相关扩充
  • PHP文件操作总计

  11、file_get_contents();– 将总体文件读入一个字符串

string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] )
//和 file() 一样,只除了 file_get_contents() 把文件读入一个字符串。将在参数 offset 所指定的位置开始读取长度为 maxlen 的内容。如果失败,file_get_contents() 将返回 FALSE。

  参数:filename: 要读取的文书的名目。

       use_include_path:As of PHP 5 the FILE_USE_INCLUDE_PATH can be used to trigger include
path search.

     context:A valid context
resource created with stream_context_create().
假若您不须要自定义 context,可以用 NULL 来忽略。

header("Content-Type:Text/html;charset=utf8");
// <= PHP 5
$file = file_get_contents('d:/test/test.txt', true);
echo $file.'<br>';
// > PHP 5
$file = file_get_contents('d:/test/test.txt', FILE_USE_INCLUDE_PATH);
echo $file;
//结果
//this is test
//this is test

  


  11、file_get_contents();– 将全方位文件读入一个字符串

string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] )
//和 file() 一样,只除了 file_get_contents() 把文件读入一个字符串。将在参数 offset 所指定的位置开始读取长度为 maxlen 的内容。如果失败,file_get_contents() 将返回 FALSE。

  参数:filename: 要读取的文书的称号。

       use_include_path:As of PHP 5 the FILE_USE_INCLUDE_PATH can be used to trigger include
path search.

     context:A valid context
resource created with stream_context_create().
如若您不须求自定义 context,可以用 NULL 来忽略。

header("Content-Type:Text/html;charset=utf8");
// <= PHP 5
$file = file_get_contents('d:/test/test.txt', true);
echo $file.'<br>';
// > PHP 5
$file = file_get_contents('d:/test/test.txt', FILE_USE_INCLUDE_PATH);
echo $file;
//结果
//this is test
//this is test

  


$path = 'd:/test/test.txt';

echo basename($path);
echo "<br>";
echo basename($path,'.txt');
echo "<br>";
echo dirname($path);

  12、fgets();–从文件指针中读取一行

string fgets ( resource $handle [, int $length ] )
//从文件指针中读取一行。

  参数:handle:文件指针必须是可行的,必须指向由 fopen() 或 fsockopen() 成功打开的公文(并还未由 fclose() 关闭)。

         
  length:从 handle 指向的文本中读取一行并回到长度最多为 length – 1
字节的字符串。遭逢换行符(包含在回到值中)、EOF 或者已经读取了 length –
1 字节后终止(看先境遇那一种意况)。如若没有点名length,则默许为
1K,或者说 1024 字节。

 


 

  13、ftell();–** **再次回到文件指针读/写的地点

int ftell ( resource $handle )
//返回由 handle 指定的文件指针的位置,也就是文件流中的偏移量。

  参数:handle :文本指针必须是立见成效的,且必须指向一个经过 fopen() 或 popen() 成功打开的文件。在增大方式(加参数 “a”
打开文件)中 ftell() 会重临未定义错误。

header("Content-Type:Text/html;charset=utf8");
// opens a file and read some data
$fp = fopen("d:/test/test.txt", "r");
$data = fgets($fp, 4);
// where are we ?
echo ftell($fp); // 结果3
fclose($fp);

 


  12、fgets();–从文件指针中读取一行

string fgets ( resource $handle [, int $length ] )
//从文件指针中读取一行。

  参数:handle:文件指针必须是实惠的,必须指向由 fopen() 或 fsockopen() 成功打开的公文(并还未由 fclose() 关闭)。

         
  length:从 handle 指向的文本中读取一行并赶回长度最多为 length – 1
字节的字符串。蒙受换行符(包涵在回到值中)、EOF 或者曾经读取了 length –
1 字节后甘休(看先碰着那一种意况)。如若没有点名length,则默许为
1K,或者说 1024 字节。

 


 

  13、ftell();–** **再次回到文件指针读/写的任务

int ftell ( resource $handle )
//返回由 handle 指定的文件指针的位置,也就是文件流中的偏移量。

  参数:handle :文本指针必须是可行的,且必须指向一个透过 fopen() 或 popen() 成功打开的文书。在增大格局(加参数 “a”
打开文件)中 ftell() 会重临未定义错误。

header("Content-Type:Text/html;charset=utf8");
// opens a file and read some data
$fp = fopen("d:/test/test.txt", "r");
$data = fgets($fp, 4);
// where are we ?
echo ftell($fp); // 结果3
fclose($fp);

 


3、pathinfo();
–重临文件路径的音讯

  14、fseek();–在文书指针中一直

int fseek ( resource $handle , int $offset [, int $whence = SEEK_SET ] )
//在与 handle 关联的文件中设定文件指针位置。 新位置从文件头开始以字节数度量,是以 whence 指定的位置加上 offset。

  参数
handle:文件系统指针,是优异地由 fopen() 创建的 resource(资源)。

offset:偏移量。要运动到文件尾以前的地方,必要给 offset 传递一个负值,并设置 whence 为 SEEK_END

whence values are:1、SEEK_SET – 设定地点等于 offset 字节。2、SEEK_CUR – 设定地点为当下岗位加上 offset。2、SEEK_END –
设定地方为文件尾加上 offset。

header("Content-Type:Text/html;charset=utf8");
$fp = fopen('d:\test\test.txt', 'r');
// read some data
$data = fgets($fp, 4096);
// move back to the beginning of the file
// same as rewind($fp);
 fseek($fp, 0);

 


  14、fseek();–在文书指针中一定

int fseek ( resource $handle , int $offset [, int $whence = SEEK_SET ] )
//在与 handle 关联的文件中设定文件指针位置。 新位置从文件头开始以字节数度量,是以 whence 指定的位置加上 offset。

  参数
handle:文件系统指针,是高人一等地由 fopen() 创建的 resource(资源)。

offset:偏移量。要运动到文件尾从前的职责,须求给 offset 传递一个负值,并设置 whence 为 SEEK_END

whence values are:1、SEEK_SET – 设定地点等于 offset 字节。2、SEEK_CUR – 设定地方为眼前岗位加上 offset。2、SEEK_END –
设定地方为文件尾加上 offset。

header("Content-Type:Text/html;charset=utf8");
$fp = fopen('d:\test\test.txt', 'r');
// read some data
$data = fgets($fp, 4096);
// move back to the beginning of the file
// same as rewind($fp);
 fseek($fp, 0);

 


mixed pathinfo ( string $path [, int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME ] )
//pathinfo() 返回一个关联数组包含有 path 的信息。返回关联数组还是字符串取决于 options。  

  15、flock();–轻便的问讯文件锁定 

bool flock ( resource $handle , int $operation [, int &$wouldblock ] )
//flock() 允许执行一个简单的可以在任何平台中使用的读取/写入模型(包括大部分的 Unix 派生版和甚至是 Windows)。

  参数:handle文件系统指针,是第一级地由 fopen() 创建的 resource(资源)。

      operation可以是以下值之一:1、LOCK_SH赢得共享锁定(读取的先后)。2、LOCK_EX 取得独占锁定(写入的次第。3、LOCK_UN 释放锁定(无论共享或占据)。

           如若不希望 flock() 在锁定时堵塞,则是 LOCK_NB(Windows
上还不匡助)。

wouldblock:倘诺锁定会杜绝的话(EWOULDBLOCK
错误码意况下),可选的第多个参数会被装置为 TRUE。(Windows 上不协理)

if (flock($fp, LOCK_EX)) {  // 进行排它型锁定
    ftruncate($fp, 0);      // truncate file
    fwrite($fp, "Write something here\n");
    fflush($fp);            // flush output before releasing the lock
    flock($fp, LOCK_UN);    // 释放锁定
} else {
    echo "Couldn't get the lock!";
}

fclose($fp);

 


  15、flock();–轻便的问话文件锁定 

bool flock ( resource $handle , int $operation [, int &$wouldblock ] )
//flock() 允许执行一个简单的可以在任何平台中使用的读取/写入模型(包括大部分的 Unix 派生版和甚至是 Windows)。

  参数:handle文件系统指针,是独立地由 fopen() 创建的 resource(资源)。

      operation可以是以下值之一:1、LOCK_SH得到共享锁定(读取的程序)。2、LOCK_EX 取得独占锁定(写入的主次。3、LOCK_UN 释放锁定(无论共享或占据)。

           倘若不期待 flock() 在锁定时堵塞,则是 LOCK_NB(Windows
上还不协理)。

wouldblock:假设锁定会堵塞的话(EWOULDBLOCK
错误码景况下),可选的第二个参数会被安装为 TRUE。(Windows 上不协理)

if (flock($fp, LOCK_EX)) {  // 进行排它型锁定
    ftruncate($fp, 0);      // truncate file
    fwrite($fp, "Write something here\n");
    fflush($fp);            // flush output before releasing the lock
    flock($fp, LOCK_UN);    // 释放锁定
} else {
    echo "Couldn't get the lock!";
}

fclose($fp);

 


参数: path
要分析的路线。    

  16、is_readable –判断给定文件名是或不是可读

bool is_readable ( string $filename )
//判断给定文件名是否存在并且可读。

  参数:filename:文本的路径。

  返回值:如果由 filename 指定的公文或目录存在并且可读则赶回 TRUE,否则再次回到 FALSE。 

$filename = 'd:\test\test.txt';
if (is_readable($filename)) {
    echo 'The file is readable';
} else {
    echo 'The file is not readable';
}
//The file is readable

 


  16、is_readable –判断给定文件名是还是不是可读

bool is_readable ( string $filename )
//判断给定文件名是否存在并且可读。

  参数:filename:文本的门径。

  返回值:如果由 filename 指定的文件或目录存在并且可读则赶回 TRUE,否则再次回到 FALSE。 

$filename = 'd:\test\test.txt';
if (is_readable($filename)) {
    echo 'The file is readable';
} else {
    echo 'The file is not readable';
}
//The file is readable

 


options
倘诺指定了,将会回来指定元素;它们包涵:PATHINFO_DIRNAME,PATHINFO_BASENAME
和PATHINFO_EXTENSION 或 PATHINFO_FILENAME。若是没有点名 options
默许是回去全体的单元。 

  17、is_writeable — 判断给定的文件名是或不是可写

bool is_writable ( string $filename )
//如果文件存在并且可写则返回 TRUE。filename 参数可以是一个允许进行是否可写检查的目录名。

  参数:filename
要检查的文件名称。

$filename = 'd:\test\test.txt';
if (is_writeable($filename)) {
    echo 'The file is writeable';
} else {
    echo 'The file is not writeable';
}
//The file is writeable

 


  17、is_writeable — 判断给定的文书名是不是可写

bool is_writable ( string $filename )
//如果文件存在并且可写则返回 TRUE。filename 参数可以是一个允许进行是否可写检查的目录名。

  参数:filename
要反省的文件名称。

$filename = 'd:\test\test.txt';
if (is_writeable($filename)) {
    echo 'The file is writeable';
} else {
    echo 'The file is not writeable';
}
//The file is writeable

 


返回值:比方没有传到 options
,将会回去包蕴以下单元的数组 array:dirname,basename 和
extension(如果有),以 及filename。   

  18、chown(); — 改变文件的主人

bool chown ( string $filename , mixed $user )
//尝试将文件 filename 的所有者改成用户 user(由用户名或用户 ID 指定)。 只有超级用户可以改变文件的所有者。

  参数:filename:文本路径。“

user:用户名或数字。


 

  18、chown(); — 改变文件的主人

bool chown ( string $filename , mixed $user )
//尝试将文件 filename 的所有者改成用户 user(由用户名或用户 ID 指定)。 只有超级用户可以改变文件的所有者。

  参数:filename:文本路径。“

user:用户名或数字。


 

$path = 'd:/test/test.txt';
var_dump(pathinfo($path)); 

二、目录函数

二、目录函数

4、filetype();–取得文件类型

  1、is_dir();–判断给定文件名是还是不是是一个索引

bool is_dir ( string $filename )
//判断给定文件名是否是一个目录。

  参数:filename:设若文件名存在并且为目录则赶回 TRUE。如果 filename 是一个相对路径,则根据当前工作目录检查其相对路径。

$filename = 'd:\test\test.txt';
var_dump(is_dir('$filename'));    //bool(false) 
var_dump(is_dir('d:\test'));        //bool(true)

 


  1、is_dir();–判断给定文件名是还是不是是一个索引

bool is_dir ( string $filename )
//判断给定文件名是否是一个目录。

  参数:filename:万一文件名存在并且为目录则赶回 TRUE。如果 filename 是一个相对路径,则按照当前工作目录检查其相对路径。

$filename = 'd:\test\test.txt';
var_dump(is_dir('$filename'));    //bool(false) 
var_dump(is_dir('d:\test'));        //bool(true)

 


string filetype ( string $filename )
//返回文件的类型。

  2、mkdir();–新建目录

bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] )
//尝试新建一个由 pathname 指定的目录。

  参数:pathname:目录的路线。

  mode:默许的 mode 是
0777,意味着最大可能的访问权。有关 mode 的更加多新闻请阅读 chmod() 页面。

mkdir("d:/test/test1", 0700);

 


  2、mkdir();–新建目录

bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] )
//尝试新建一个由 pathname 指定的目录。

  参数:pathname:目录的路子。

  mode:默许的 mode 是
0777,意味着最大可能的访问权。有关 mode 的愈多信息请阅读 chmod() 页面。

mkdir("d:/test/test1", 0700);

 


参数: filename 文件的门道。 

  3、opendir();–打开目录句柄

resource opendir ( string $path [, resource $context ] )
//打开一个目录句柄,可用于之后的 closedir(),readdir() 和 rewinddir() 调用中。

  参数:path要打开的目录路径

context 参数的验证见手册中的 Streams
API 一章。


  3、opendir();–打开目录句柄

resource opendir ( string $path [, resource $context ] )
//打开一个目录句柄,可用于之后的 closedir(),readdir() 和 rewinddir() 调用中。

  参数:path要打开的目录路径

context 参数的声明见手册中的 Streams
API 一章。


返回值: 再次回到文件的门类。

  4、readdir();–从目录句柄中读取条目

string readdir ([ resource $dir_handle ] )
//返回目录中下一个文件的文件名。文件名以在文件系统中的排序返回。

  参数:dir_handle目录句柄的 resource,之前由 opendir() 打开

header("Content-Type:Text/html;charset=utf8");
if ($handle = opendir('d:/test')) {
    echo "Directory handle: $handle\n";
    echo "Files:\n";

    /* 这是正确地遍历目录方法 */
    while (false !== ($file = readdir($handle))) {
        echo "$file\n";
    }

    /* 这是错误地遍历目录的方法
    while ($file = readdir($handle)) {
        echo "$file\n";
    }
    */
    closedir($handle);
}

 

  4、readdir();–从目录句柄中读取条目

string readdir ([ resource $dir_handle ] )
//返回目录中下一个文件的文件名。文件名以在文件系统中的排序返回。

  参数:dir_handle目录句柄的 resource,之前由 opendir() 打开

header("Content-Type:Text/html;charset=utf8");
if ($handle = opendir('d:/test')) {
    echo "Directory handle: $handle\n";
    echo "Files:\n";

    /* 这是正确地遍历目录方法 */
    while (false !== ($file = readdir($handle))) {
        echo "$file\n";
    }

    /* 这是错误地遍历目录的方法
    while ($file = readdir($handle)) {
        echo "$file\n";
    }
    */
    closedir($handle);
}

 

或者的值有 fifo,char,dir,block,link,file 和 unknown。假使出错则赶回
FALSE。要是 stat 调用失利或者文件类型未知的话 filetype() 还会发生一个
E_NOTICE 消息。

$path = 'd:/test/test.txt';
echo filetype($path);
//结果file 

5、fstat()和stat();

⑴、fstat()-通过已开拓的文本指针取得文件信息

array fstat ( resource $handle )
//获取由文件指针 handle 所打开文件的统计信息。本函数和 stat() 函数相似,除了它是作用于已打开的文件指针而不是文件名。

参数: handle
文件系统指针,是压倒一切地由 fopen() 创制的 resource(资源)。

返回值:
重临一个数组具有该公文的总结新闻,该数组的格式详细表明于手册中
stat() 页面里。

⑵、stat() –给出文件的新闻

array stat ( string $filename )
//获取由 filename 指定的文件的统计信息。如果 filename 是符号连接,则统计信息是关于被连接文件本身的,而不是符号连接。
//lstat() 和 stat() 相同,只除了它会返回符号连接的状态。

参数:filename 文件的路径.

$path = 'd:/test/test.txt';

$fp = fopen("d:/test/test.txt","r");
$fstat = fstat($fp);
fclose($fp);
var_dump($fstat); 

6、filesize();–取得文件大小

int filesize ( string $filename )
//取得指定文件的大小。

参数:filename 文件的途径。

返回值:回到文件大小的字节数,如若出错再次来到FALSE 并生成一条 E_WARNING 级的失实。

<?php

// 输出类似:test.txt:  bytes

$filename = 'd:/test/test.txt';
echo $filename . ': ' . filesize($filename) . ' bytes';

?>
//结果:d:/test/test.txt: 12 bytes

7、disk_free_space(); —
重临目录中的可用空间

float disk_free_space ( string $directory )
//给出一个包含有一个目录的字符串,本函数将根据相应的文件系统或磁盘分区返回可用的字节数。 

参数:directory
文件系统目录或者磁盘分区。

header("Content-Type:Text/html;charset=utf8");
$path = 'd:/test/test.txt';
$df = disk_free_space("d:/");
echo $df."字节"; 

8、disk_total_space();
–重临一个索引的磁盘总大小

float disk_total_space ( string $directory )
//给出一个包含有一个目录的字符串,本函数将根据相应的文件系统或磁盘分区返回所有的字节数。 【译者注】本函数返回的是该目录所在的磁盘分区的总大小,因此在给出同一个磁盘分区的不同目录作为参数所得到的结果完全相同。 在 Unix 和 Windows 200x/XP 中都支持将一个磁盘分区加载为一个子目录,这时正确使用本函数就很有意义。

参数:directory
文件系统的目录或者磁盘分区

9、fopen($filepath,$mode) 

resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )
//fopen() 将 filename 指定的名字资源绑定到一个流上  

参数:filename 如若 filename 是
“scheme://…” 的格式,则被当成一个 URL,PHP
将寻找协议处理器(也被誉为封装协议)来处理此情势。即使该协议没有注册封装协议,PHP
将发生一条信息来支援检查脚本中潜在的题材并将 filename
当成一个无独有偶的文本名继续执行下去。

fopen()mode 的可能值列表
mode 说明
‘r’ 只读方式打开,将文件指针指向文件头。
‘r+’ 读写方式打开,将文件指针指向文件头。
‘w’ 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
‘w+’ 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
‘a’ 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
‘a+’ 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
‘x’ 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。
‘x+’ 创建并以读写方式打开,其他的行为和 ‘x’ 一样。
<?php
$handle = fopen("/home/rasmus/file.txt", "r");
$handle = fopen("/home/rasmus/file.gif", "wb");
$handle = fopen("http://www.example.com/", "r");
$handle = fopen("ftp://user:password@example.com/somefile.txt", "w");
?>

10、file();–把全路文件读入一个数组中

array file ( string $filename [, int $flags = 0 [, resource $context ]] )
//把整个文件读入一个数组中。 

参数:filename 文件的途径。

flags 可选参数 flags 可以是以下一个或八个常量:

1、FILE_USE_INCLUDE_PATH 在 include_path 中查找文件。

2、FILE_IGNORE_NEW_LINES 在数组每个元素的末段不要添加换行符

3、FILE_SKIP_EMPTY_LINES 跳过空行。

context 一个上下文资源,创制stream_context_create()函数。

<?php
// 将一个文件读入数组。本例中通过 HTTP 从 URL 中取得 HTML 源文件。
$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/'));
// 从 PHP 5 开始可以使用可选标记参数
$trimmed = file('somefile.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
?>

11、file_get_contents();–
将全方位文件读入一个字符串

string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] )
//和 file() 一样,只除了 file_get_contents() 把文件读入一个字符串。将在参数 offset 所指定的位置开始读取长度为 maxlen 的内容。如果失败,file_get_contents() 将返回 FALSE。  

参数:filename:
要读取的公文的名目。

use_include_path:As of PHP 5 the FILE_USE_INCLUDE_PATH can be used
to trigger include path search.

context:A valid context resource created with
stream_context_create(). 即便您不要求自定义 context,可以用 NULL
来忽略。

header("Content-Type:Text/html;charset=utf8");
// <= PHP 5
$file = file_get_contents('d:/test/test.txt', true);
echo $file.'<br>';
// > PHP 5
$file = file_get_contents('d:/test/test.txt', FILE_USE_INCLUDE_PATH);
echo $file;
//结果
//this is test
//this is test

12、fgets();–从文件指针中读取一行

string fgets ( resource $handle [, int $length ] )
//从文件指针中读取一行。 

参数:handle:文件指针必须是实用的,必须指向由
fopen() 或 fsockopen() 成功打开的文本(并还未由 fclose() 关闭)。

length:从 handle 指向的公文中读取一行并回到长度最多为 length – 1
字节的字符串。际遇换行符(包罗在回来值中)、EOF 或者曾经读取了 length –
1 字节后截止(看先碰着那一种情景)。如若没有点名length,则默许为
1K,或者说 1024 字节。

13、ftell();–
重临文件指针读/写的职位

int ftell ( resource $handle )
//返回由 handle 指定的文件指针的位置,也就是文件流中的偏移量。 

参数:handle :
文件指针必须是立见功用的,且必须指向一个通过 fopen() 或 popen()
成功打开的文书。在增大方式(加参数 “a” 打开文件)中 ftell()
会重返未定义错误。

header("Content-Type:Text/html;charset=utf8");
// opens a file and read some data
$fp = fopen("d:/test/test.txt", "r");
$data = fgets($fp, 4);
// where are we ?
echo ftell($fp); // 结果3
fclose($fp);

14、fseek();–在文件指针中一定

int fseek ( resource $handle , int $offset [, int $whence = SEEK_SET ] )
//在与 handle 关联的文件中设定文件指针位置。 新位置从文件头开始以字节数度量,是以 whence 指定的位置加上 offset。

  

参数
handle:文件系统指针,是独立地由 fopen() 创设的
resource(资源)。

offset:偏移量。要运动到文件尾以前的地点,需求给 offset
传递一个负值,并安装 whence 为 SEEK_END。

whence values are:

1、SEEK_SET – 设定地点等于 offset 字节。

2、SEEK_CUR – 设定地方为当前岗位加上 offset。

3、SEEK_END – 设定地方为文件尾加上 offset。

header("Content-Type:Text/html;charset=utf8");
$fp = fopen('d:\test\test.txt', 'r');
// read some data
$data = fgets($fp, 4096);
// move back to the beginning of the file
// same as rewind($fp);
 fseek($fp, 0);

15、flock();–轻便的咨询文件锁定 

bool flock ( resource $handle , int $operation [, int &$wouldblock ] )
//flock() 允许执行一个简单的可以在任何平台中使用的读取/写入模型(包括大部分的 Unix 派生版和甚至是 Windows)。  

参数:handle
文件系统指针,是出类拔萃地由 fopen() 创设的 resource(资源)。

operation 可以是以下值之一:

1、LOCK_SH取得共享锁定(读取的次第)。

2、LOCK_EX 取得独占锁定(写入的顺序。

3、LOCK_UN 释放锁定(无论共享或占据)。

若果不指望 flock() 在锁定时堵塞,则是 LOCK_NB(Windows 上还不协助)。

wouldblock:固然锁定会杜绝的话(EWOULDBLOCK
错误码意况下),可选的第多个参数会被安装为 TRUE。(Windows 上不帮助)

if (flock($fp, LOCK_EX)) { // 进行排它型锁定
  ftruncate($fp, 0);   // truncate file
  fwrite($fp, "Write something here\n");
  fflush($fp);      // flush output before releasing the lock
  flock($fp, LOCK_UN);  // 释放锁定
} else {
  echo "Couldn't get the lock!";
}

fclose($fp);

16、is_readable
–判断给定文件名是或不是可读

bool is_readable ( string $filename )
//判断给定文件名是否存在并且可读。 

参数:filename:文件的路子。

重临值:假使由 filename 指定的文书或目录存在并且可读则赶回
TRUE,否则重回 FALSE。 

$filename = 'd:\test\test.txt';
if (is_readable($filename)) {
  echo 'The file is readable';
} else {
  echo 'The file is not readable';
}
//The file is readable

17、is_writeable —
判断给定的文件名是或不是可写

bool is_writable ( string $filename )
//如果文件存在并且可写则返回 TRUE。filename 参数可以是一个允许进行是否可写检查的目录名。  

参数:filename
要检查的文件名称。

$filename = 'd:\test\test.txt';
if (is_writeable($filename)) {
  echo 'The file is writeable';
} else {
  echo 'The file is not writeable';
}
//The file is writeable

18、chown(); —
改变文件的所有者

bool chown ( string $filename , mixed $user )
//尝试将文件 filename 的所有者改成用户 user(由用户名或用户 ID 指定)。 只有超级用户可以改变文件的所有者。

  

参数:filename:文件路径。

user:用户名或数字。

二、目录函数

1、is_dir();–判断给定文件名是否是一个目录

bool is_dir ( string $filename )
//判断给定文件名是否是一个目录。 

参数:filename:假诺文件名存在并且为目录则赶回
TRUE。假若 filename 是一个相对路径,则按照当前工作目录检查其相对路径。

$filename = 'd:\test\test.txt';
var_dump(is_dir('$filename'));  //bool(false) 
var_dump(is_dir('d:\test'));    //bool(true) 

2、mkdir();–新建目录

bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] )//尝试新建一个由 pathname 指定的目录。

参数:pathname:目录的路径。

mode:默许的 mode 是 0777,意味着最大可能的访问权。有关 mode
的更加多新闻请阅读 chmod() 页面。
mkdir(“d:/test/test1”, 0700);

3、opendir();–打开目录句柄

resource opendir ( string $path [, resource $context ] )
//打开一个目录句柄,可用于之后的 closedir(),readdir() 和 rewinddir() 调用中。 

参数:path 要开辟的目录路径

context 参数的辨证见手册中的 Streams API 一章。

4、readdir();–从目录句柄中读取条目

string readdir ([ resource $dir_handle ] )
//返回目录中下一个文件的文件名。文件名以在文件系统中的排序返回。 

参数:dir_handle 目录句柄的
resource,此前由 opendir() 打开

header("Content-Type:Text/html;charset=utf8");
if ($handle = opendir('d:/test')) {
  echo "Directory handle: $handle\n";
  echo "Files:\n";

  /* 这是正确地遍历目录方法 */
  while (false !== ($file = readdir($handle))) {
    echo "$file\n";
  }

  /* 这是错误地遍历目录的方法
  while ($file = readdir($handle)) {
    echo "$file\n";
  }
  */
  closedir($handle);
}

如上那篇基于PHP常用文件函数和目录函数整理就是小编分享给大家的全体内容了,希望能给我们一个参照,也盼望我们多多扶助脚本之家。

您可能感兴趣的稿子:

  • php文件夹与文件目录操作函数介绍
  • php常用文件操作函数汇总

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图