basename():获取路径中的文件名部分;
语法:basename(path[,suffix]);//返回路径中的文件名部分
说明:第一个参数为路径,必需;
第二个参数可选,为文件扩展名,设置后返回值中不包含文件扩展名。
例如:<?php
$path = "/home/httpd/html/index.php";
echo basename($path); //输出 index.php
echo basename($path,".php"); //输出 index
?>
dirname():获取路径中的目录部分;
语法:dirname(path);//返回路径中的目录部分
说明:path 参数是一个包含有指向一个文件的全路径的字符串,
该函数返回去掉文件名后的目录名
可嵌套使用,嵌套一次就去除最后一个目录名,嵌套多次依次类推
例如:<?php
$path="/wamp/www/item/test.php";
//输出:/wamp/www/item
echo "目录名为:".dirname($path);
?>
pathinfo():函数以数组的形式返回关于文件路径的信息,关联数组中包含元素:dirname、basename、extension;
语法:pathinfo(path[,规定获取那个值]);//返回一个关联数组
说明:第二个参数可选,规定要返回的数组元素,默认 ALL,参数值为:PATHINFO_DIRNAME - 只返回 dirname;PATHINFO_BASENAME - 只返回 basename;PATHINFO_EXTENSION - 只返回 extension
如果不是请求所有的元素,则 pathinfo() 函数返回字符串。
例如:<?php
$path="/wamp/www/item/test.php";
//输出:Array ( [dirname] => /wamp/www/item [basename] => test.php [extension] => php [filename] => test )
print_r(pathinfo($path));
?>
realpath():返回规范的绝对路径;
语法:realpath(path);//返回绝对路径名/不存在的文件返回false
说明:path:要检查的路径该函数删除所有符号连接(比如 ‘/./’, ‘/../’ 以及多余的 ‘/’),并返回绝对路径名。如果失败,该函数返回 FALSE。
例如:<?php
$path="/wamp/www/item/test.php"; //文件一定要存在磁盘中
//输出:D:/wamp/www/item/test.php
var_dump(realpath($path));
?>
fopen()打开文件或URL
语法:fopen(filename,mode);//返回文件指针,失败返回false
说明:filename文件路径或URL,一定要存在真实路径,
mode访问类型,参数值:r、r+、w、w+、a、a+、x、x+
例如:<?php
$file = fopen("test.txt","r");
$file = fopen("/home/test/test.txt","r");
$file = fopen("/home/test/test.gif", "wb");
//由于windows行结束符:\n\t;linux行结束符:\n;为移植性考虑,打开文件时总是使用 "b" 标记。
$file = fopen("http://www.baidu.com/","r");
?>
值 说明 备注
r 只读方式打开,将文件指针指向文件头
r+ 读写方式打开,将文件指针指向文件头
w 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 重置内容
w+ 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 重置内容
a 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 追加内容
a+ 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 追加内容
x 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,返回 FALSE报出E_WARNING 级别的错误信息,如果文件不存在则尝试创建之。
x+ 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,返回 FALSE报出E_WARNING 级别的错误信息,如果文件不存在则尝试创建之。
fgets():从打开的文件中返回一行;
语法:fgets(file[,length]);//成功返回读取到的字符串/失败false
说明:file:通过fopen打开的文件指针;
length规定要读取的长度,默认1024字节 (1k);
注意:读取一行表示:碰到换行符(包括在返回值中)或者已经读取了 length - 1 字节后停止。把文件指针移向下一行
例如:<?php
//读取文件一行内容
$handle = fopen(dirname(__FILE__)."/file/123.txt", "r"); //文件要存在
$buffer=fgets($handle,4096);
echo $buffer;
?>
读取文件中所有行内容,考虑可以通过循环方式实现,但需要知道结束行位置,那么PHP文件函数提供一个函数feof();
语法:feof(file);测试文件指针是否到了文件结束的位置。
说明:检查到已经是文件结尾返回 true;否则返回 false;
file 已经打开的文件指针,必选有效,否则会无限循环
例如:<?php
//读取全部行内容
$handle = fopen(dirname(__FILE__)."/file/123.txt", "r"); //文件要存在
while(!feof($handle)){
$buffer = fgets($handle,4096);
echo $buffer.'<br>';
}
?>
fread():读取打开的文件;
语法:fread(file,length);//成功返回所读字符串/失败false
说明:从文件指针 file 读取最多 length 个字节(length>0)。
读取文件中的全部内容通常使用filesize获取文件最大字节数作为lenght
语法:filesize(path);返回指定文件大小,字节数;
例如:<?php
$filename = "file/info.txt"; //文件要存在
$handle = fopen($filename, "r");
$contents = fread($handle, filesize ($filename));
echo $contents;// 输出的是info.txt中的内容
?>
fwrite():写入文件;
语法:fwrite(file,string[,length]);//成功返回写入字节数/失败false
说明:file已通过fopen以写入或读写方式打开的文件指针;
string要写入的字符串;
length可选参数,写入的最大字节数
例如:<?php
$txt="mywrite.txt";
$content="这是我写的一些东西\n";
$info=fopen($txt,"a"); //追加方式写入数据
$showinfo=fwrite($info,$content);
//将$content里面的内容加入到文件里
?>
fclose():关闭已经打开的文件,释放空间;
语法:fclose(file);//成功返回true/失败false
说明:file是已经打开的文件指针;
例如:<?php
$txt="mywrite.txt";
$content="这是我写的一些东西\n";
$info=fopen($txt,"a"); //追加方式写入数据
$showinfo=fwrite($info,$content);
//将$content里面的内容加入到文件里
fclose($info);//关闭文件指针
?>
file_put_contents():将字符串写入指定的文件中;
语法:file_put_contents(path,string[,mode]); //返回字节数/失败false
说明:path文件路径,如果文件不存在会自动创建;
string要写入的内容;
mode可选,设置:FILE_APPEND 追加方式写入,默认为覆盖
与依次调用 fopen(),fwrite() 以及 fclose() 功能一样;
例如:<?php
$file=dirname(__FILE__).'/file/content.txt';
$content="你好,诺博源\n";
echo file_put_contents($file,$content,FILE_APPEND );
//如果加上FILE_APPEND表示追加,不加则视为重置
?>
file_get_contents():将整个文件读入字符串中;
语法:file_get_contents(path);//返回读取的内容
说明:path文件路径或URL;
扩展函数: file(path);也可以读取整个文件,但返回的是一行为一个元素的数组
例如:<?php
$file=dirname(__FILE__).'/file/content.txt';
echo file_get_contents($file);
//输出content.txt
echo file_get_contents('http://www.baidu.com');
//获取指定URL页面内容
?>
is_dir():判断指定文件名是否为目录;
语法:is_dir(file);//文件名存在并且是目录返回true,否则返回false
说明:file规定要检查的文件;
如果 file 是一个相对路径,则按照当前工作目录检查其相对路径
例如:<?php
$dirtxt="mytxt.txt";
if(!is_dir($dirtxt)){
echo "目录找不到或不存在";
}else{
echo "目录找到了!";
}
//输出:目录找不到或不存在
?>
is_file():判断指定文件名是否为正常的文件;
语法:is_file(file);//文件存在并且为正常文件返回true,否则返回false
说明:file规定要检查的文件;
例如:<?php
$text="mytxt.txt";
if(!is_file($text)){
$content=fopen($text,"r");
$info=fgets($content);
echo $info;
fclose($content);
}else{
echo "这不是一个正常文件!";
}
?>
file_exists():检查指定文件或目录是否存在;
语法:file_exists(path);//文件或目录存在返回true,否则返回false
说明:path规定要检查的路径;
即可检查目录,也可以检查文件
例如:
<?php
$text=dirname(__FILE__). "/mytxt.txt";
if(!file_exists($text)){
echo "文件存在!";
}else{
echo "文件不存在!";
}
?>
mkdir():创建新目录;
语法:mkdir(path[,mode,recursive]);//新建成功返回true,失败false
说明:path规定要创建的目录名称(或使用递归设置多层目录名);
mode规定目录权限,默认0777最大权限,windows系统忽略
recursive规定使用递归模式(true/false),主要用于创建多层目录
例如:<?php
//在当前文件夹下,创建testFile文件夹
if(mkdir("testFile",0777)){
echo "目录路径创建成功";
}else{
echo "目录路径创建失败";
}//注意创建已存在的目录会报错
?>
copy():拷贝文件;
语法:copy(source,dest);//复制成功返回true,否则返回false
说明:source要复制的源文件,dest目标文件位置
如果目标文件已存在,将会被覆盖;
例如:<?php
$file = 'file/info.txt';
$newfile = 'file/info.txt.bak’;
if (!copy($file, $newfile)) {
echo "failed to copy $file...\n";
}else{
echo "copy success";
} //输出:copy success,表示文件以成功拷贝
?>
move_uploaded_file():将上传的文件移动到新位置;
语法:move_uploaded_file(file,newfile);//返回true/false
说明:file通过form表单上传机制得到;
newfile 移动到的新地址;
备注:是在上传文件的时候用的最多!!!
unlink():删除文件;
语法:unlink(filename);//删除成功返回true,否则返回false
说明:filename要删除的文件
例如:<?php
$fh = fopen('file/test.html', 'a'); //以写入的方式打开
fwrite($fh, '<h1><a href="http://www.baidu.com">百度一下,你就知道</h1></a>'); //写入内容
fclose($fh);
//以上可以成功写入内容,并可以用浏览器打开
unlink('file/test.html');//unlink之后,该html文件不存在
?>
rmdir():删除目录;
语法:rmdir(dirname);//删除成功返回true,否则返回false
说明:dirname要删除的目录;该目录下必选为空;而且要有权限;
例如:<?php
if(!is_dir("file")){
mkdir("file”,0777); //创建目录
if(rmdir("file")){
echo "操作成功";
}else{
echo "操作失败”;
}
}
?>
glob():返指定目录下一个包含匹配指定模式的文件名/目录的数组;
语法:glob(file);//返回匹配成功的数组,否则返回false
说明:file规定检索模式;如:"*.txt","image/*.jpg";
例如:<?php
foreach (glob("*.txt") as $filename) {
echo $filename. '<br>'; //匹配当前目录下.txt后缀的文件
}
function d($dirPath){//获取指定目录下的所有子目录
foreach((array)glob($dirPath."/*") as $val){
if(is_dir($val)) { echo $val. '<br>'; d($val); }
}
}
d('a');
?>
语法:basename(path[,suffix]);//返回路径中的文件名部分
说明:第一个参数为路径,必需;
第二个参数可选,为文件扩展名,设置后返回值中不包含文件扩展名。
例如:<?php
$path = "/home/httpd/html/index.php";
echo basename($path); //输出 index.php
echo basename($path,".php"); //输出 index
?>
dirname():获取路径中的目录部分;
语法:dirname(path);//返回路径中的目录部分
说明:path 参数是一个包含有指向一个文件的全路径的字符串,
该函数返回去掉文件名后的目录名
可嵌套使用,嵌套一次就去除最后一个目录名,嵌套多次依次类推
例如:<?php
$path="/wamp/www/item/test.php";
//输出:/wamp/www/item
echo "目录名为:".dirname($path);
?>
pathinfo():函数以数组的形式返回关于文件路径的信息,关联数组中包含元素:dirname、basename、extension;
语法:pathinfo(path[,规定获取那个值]);//返回一个关联数组
说明:第二个参数可选,规定要返回的数组元素,默认 ALL,参数值为:PATHINFO_DIRNAME - 只返回 dirname;PATHINFO_BASENAME - 只返回 basename;PATHINFO_EXTENSION - 只返回 extension
如果不是请求所有的元素,则 pathinfo() 函数返回字符串。
例如:<?php
$path="/wamp/www/item/test.php";
//输出:Array ( [dirname] => /wamp/www/item [basename] => test.php [extension] => php [filename] => test )
print_r(pathinfo($path));
?>
realpath():返回规范的绝对路径;
语法:realpath(path);//返回绝对路径名/不存在的文件返回false
说明:path:要检查的路径该函数删除所有符号连接(比如 ‘/./’, ‘/../’ 以及多余的 ‘/’),并返回绝对路径名。如果失败,该函数返回 FALSE。
例如:<?php
$path="/wamp/www/item/test.php"; //文件一定要存在磁盘中
//输出:D:/wamp/www/item/test.php
var_dump(realpath($path));
?>
fopen()打开文件或URL
语法:fopen(filename,mode);//返回文件指针,失败返回false
说明:filename文件路径或URL,一定要存在真实路径,
mode访问类型,参数值:r、r+、w、w+、a、a+、x、x+
例如:<?php
$file = fopen("test.txt","r");
$file = fopen("/home/test/test.txt","r");
$file = fopen("/home/test/test.gif", "wb");
//由于windows行结束符:\n\t;linux行结束符:\n;为移植性考虑,打开文件时总是使用 "b" 标记。
$file = fopen("http://www.baidu.com/","r");
?>
值 说明 备注
r 只读方式打开,将文件指针指向文件头
r+ 读写方式打开,将文件指针指向文件头
w 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 重置内容
w+ 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 重置内容
a 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 追加内容
a+ 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 追加内容
x 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,返回 FALSE报出E_WARNING 级别的错误信息,如果文件不存在则尝试创建之。
x+ 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,返回 FALSE报出E_WARNING 级别的错误信息,如果文件不存在则尝试创建之。
fgets():从打开的文件中返回一行;
语法:fgets(file[,length]);//成功返回读取到的字符串/失败false
说明:file:通过fopen打开的文件指针;
length规定要读取的长度,默认1024字节 (1k);
注意:读取一行表示:碰到换行符(包括在返回值中)或者已经读取了 length - 1 字节后停止。把文件指针移向下一行
例如:<?php
//读取文件一行内容
$handle = fopen(dirname(__FILE__)."/file/123.txt", "r"); //文件要存在
$buffer=fgets($handle,4096);
echo $buffer;
?>
读取文件中所有行内容,考虑可以通过循环方式实现,但需要知道结束行位置,那么PHP文件函数提供一个函数feof();
语法:feof(file);测试文件指针是否到了文件结束的位置。
说明:检查到已经是文件结尾返回 true;否则返回 false;
file 已经打开的文件指针,必选有效,否则会无限循环
例如:<?php
//读取全部行内容
$handle = fopen(dirname(__FILE__)."/file/123.txt", "r"); //文件要存在
while(!feof($handle)){
$buffer = fgets($handle,4096);
echo $buffer.'<br>';
}
?>
fread():读取打开的文件;
语法:fread(file,length);//成功返回所读字符串/失败false
说明:从文件指针 file 读取最多 length 个字节(length>0)。
读取文件中的全部内容通常使用filesize获取文件最大字节数作为lenght
语法:filesize(path);返回指定文件大小,字节数;
例如:<?php
$filename = "file/info.txt"; //文件要存在
$handle = fopen($filename, "r");
$contents = fread($handle, filesize ($filename));
echo $contents;// 输出的是info.txt中的内容
?>
fwrite():写入文件;
语法:fwrite(file,string[,length]);//成功返回写入字节数/失败false
说明:file已通过fopen以写入或读写方式打开的文件指针;
string要写入的字符串;
length可选参数,写入的最大字节数
例如:<?php
$txt="mywrite.txt";
$content="这是我写的一些东西\n";
$info=fopen($txt,"a"); //追加方式写入数据
$showinfo=fwrite($info,$content);
//将$content里面的内容加入到文件里
?>
fclose():关闭已经打开的文件,释放空间;
语法:fclose(file);//成功返回true/失败false
说明:file是已经打开的文件指针;
例如:<?php
$txt="mywrite.txt";
$content="这是我写的一些东西\n";
$info=fopen($txt,"a"); //追加方式写入数据
$showinfo=fwrite($info,$content);
//将$content里面的内容加入到文件里
fclose($info);//关闭文件指针
?>
file_put_contents():将字符串写入指定的文件中;
语法:file_put_contents(path,string[,mode]); //返回字节数/失败false
说明:path文件路径,如果文件不存在会自动创建;
string要写入的内容;
mode可选,设置:FILE_APPEND 追加方式写入,默认为覆盖
与依次调用 fopen(),fwrite() 以及 fclose() 功能一样;
例如:<?php
$file=dirname(__FILE__).'/file/content.txt';
$content="你好,诺博源\n";
echo file_put_contents($file,$content,FILE_APPEND );
//如果加上FILE_APPEND表示追加,不加则视为重置
?>
file_get_contents():将整个文件读入字符串中;
语法:file_get_contents(path);//返回读取的内容
说明:path文件路径或URL;
扩展函数: file(path);也可以读取整个文件,但返回的是一行为一个元素的数组
例如:<?php
$file=dirname(__FILE__).'/file/content.txt';
echo file_get_contents($file);
//输出content.txt
echo file_get_contents('http://www.baidu.com');
//获取指定URL页面内容
?>
is_dir():判断指定文件名是否为目录;
语法:is_dir(file);//文件名存在并且是目录返回true,否则返回false
说明:file规定要检查的文件;
如果 file 是一个相对路径,则按照当前工作目录检查其相对路径
例如:<?php
$dirtxt="mytxt.txt";
if(!is_dir($dirtxt)){
echo "目录找不到或不存在";
}else{
echo "目录找到了!";
}
//输出:目录找不到或不存在
?>
is_file():判断指定文件名是否为正常的文件;
语法:is_file(file);//文件存在并且为正常文件返回true,否则返回false
说明:file规定要检查的文件;
例如:<?php
$text="mytxt.txt";
if(!is_file($text)){
$content=fopen($text,"r");
$info=fgets($content);
echo $info;
fclose($content);
}else{
echo "这不是一个正常文件!";
}
?>
file_exists():检查指定文件或目录是否存在;
语法:file_exists(path);//文件或目录存在返回true,否则返回false
说明:path规定要检查的路径;
即可检查目录,也可以检查文件
例如:
<?php
$text=dirname(__FILE__). "/mytxt.txt";
if(!file_exists($text)){
echo "文件存在!";
}else{
echo "文件不存在!";
}
?>
mkdir():创建新目录;
语法:mkdir(path[,mode,recursive]);//新建成功返回true,失败false
说明:path规定要创建的目录名称(或使用递归设置多层目录名);
mode规定目录权限,默认0777最大权限,windows系统忽略
recursive规定使用递归模式(true/false),主要用于创建多层目录
例如:<?php
//在当前文件夹下,创建testFile文件夹
if(mkdir("testFile",0777)){
echo "目录路径创建成功";
}else{
echo "目录路径创建失败";
}//注意创建已存在的目录会报错
?>
copy():拷贝文件;
语法:copy(source,dest);//复制成功返回true,否则返回false
说明:source要复制的源文件,dest目标文件位置
如果目标文件已存在,将会被覆盖;
例如:<?php
$file = 'file/info.txt';
$newfile = 'file/info.txt.bak’;
if (!copy($file, $newfile)) {
echo "failed to copy $file...\n";
}else{
echo "copy success";
} //输出:copy success,表示文件以成功拷贝
?>
move_uploaded_file():将上传的文件移动到新位置;
语法:move_uploaded_file(file,newfile);//返回true/false
说明:file通过form表单上传机制得到;
newfile 移动到的新地址;
备注:是在上传文件的时候用的最多!!!
unlink():删除文件;
语法:unlink(filename);//删除成功返回true,否则返回false
说明:filename要删除的文件
例如:<?php
$fh = fopen('file/test.html', 'a'); //以写入的方式打开
fwrite($fh, '<h1><a href="http://www.baidu.com">百度一下,你就知道</h1></a>'); //写入内容
fclose($fh);
//以上可以成功写入内容,并可以用浏览器打开
unlink('file/test.html');//unlink之后,该html文件不存在
?>
rmdir():删除目录;
语法:rmdir(dirname);//删除成功返回true,否则返回false
说明:dirname要删除的目录;该目录下必选为空;而且要有权限;
例如:<?php
if(!is_dir("file")){
mkdir("file”,0777); //创建目录
if(rmdir("file")){
echo "操作成功";
}else{
echo "操作失败”;
}
}
?>
glob():返指定目录下一个包含匹配指定模式的文件名/目录的数组;
语法:glob(file);//返回匹配成功的数组,否则返回false
说明:file规定检索模式;如:"*.txt","image/*.jpg";
例如:<?php
foreach (glob("*.txt") as $filename) {
echo $filename. '<br>'; //匹配当前目录下.txt后缀的文件
}
function d($dirPath){//获取指定目录下的所有子目录
foreach((array)glob($dirPath."/*") as $val){
if(is_dir($val)) { echo $val. '<br>'; d($val); }
}
}
d('a');
?>