PHP学习笔记之PHP操作(二)

10 篇文章 2 订阅
一.打开和关闭文件
1.fopen()
函数将resource绑定到一个流或句柄。绑定之后,脚本就可以通过句柄与此资源交互;
//以只读方式打开一个位于本地服务器的文本文件;
$fn = fopen("test.txt","r");
//以只读方式打开一个远程文件
$fn2 = fopen("http://www.baidu.com","r");
2.fclose(handle)
将 handle 指向的文件关闭 。如果成功则返回 TRUE,失败则返回 FALSE;虽然每个请求最后都会自动关闭文件,但明确的关闭打开的所有文件是一个好的习惯
fclose($fn)
二.读取文件

php 提供了很多从文件中读取数据的方法,不仅可以一次只读取一个字符,还可以一次读取整个文件。

  • 1.fread(handle,length)函数从handle指定的资源中读取length个字符,当到达EOF或读取到length个字符时读取将停止。如果要读取整个文件,使用filesize(handle)函数获取文件的字数来应该读取的字符数;

  • 2.fgets(handle)函数从handle指定的资源中读取一行字符。feof() 函数检测是否已到达文件末尾 (eof)。

  • 3.file(url)函数将文件读取到数组中,各元素由换行符分隔。

  • 4.filegetcontents(url)函数将文件内容读到字符串中;

 //以只读的方法打开文件"text.txt";
 $file = fopen("text.txt","r");
 //读取$file中所有字符
 $con1 = fread($file,filesize("text.txt"));
 //输出
 echo "$con1";
 
 //声明一个空变量
 $con2 = "";
 //while循环获取读取整个文件
 while(!feof($file)){
    //如果未读取到文件结尾就一直读取,拼接,直到获取到文件结尾处
    $con .- fgets($file);
 }
 echo "$con2";
 
 // 将文件读取到数组中
 $arr = file("text.txt");
 //输出该数组
 print_r($arr);
 
 //将"text.txt"文件内容读取到字符串中
 $con3 = file_get_contents(("text.txt"));
 echo "$con3";
 //关闭文件
 fclose($file);
 
三.写入文件
fwrite(fandle,string,length)

函数将string的内容写入到由handle指定的资源中。如果指定length参数,将在写入Length个字符时停止

file_put_contents(url,str)

函数将一个字符串写入文件,与依次调用fopen(),fwrite(),fclose()功能一样

 //以只写的方法打开"text.txt"文件
 $file = fopen("text.txt","w");
 //在该文件写入"输入的内容"
 fwirte($file,"输入的内容");
 //关闭该文件
 fclose($file);
 
 //此为以上代码缩写形式
 file_put_contents("text.txt","写入的内容")
四.解析目录路径的函数
  1. basename(path,suffix)返回路径"path"中的文件名部分,当指定了可选参数suffix会将这部分内容去掉
  2. dirname(path)返回路径"path"中的目录部分
  3. pathinfo(path)返回一个关联数组,其中包括路径中得三个部分:目录名,文件名,扩展名
  4. $_SERVER["SCRIPT_FILENAME"]获取当前文件路径
//声明路径为当前文件路径
$path = $_SERVER["SCRIPT_FILENAME"];
//获取当前文件名,去掉php后缀
$filename = basename($path,".php");
//输出当前文件名
echo "$filename";
//获取路径所在的目录
$dirname = dirname($path);
echo "$dirname";
//获取路径的关联数组
$arr = pathinfo($path);
print_r($arr);
//输出当前文件路径
echo $_SERVER["SCRIPT_FILENAME"];
五.其他文件操作函数
  1. filesize(handle)取得文件的小大,以字节为单位
  2. filectime(url)取得文件的创建时间,以unix时间戳返回
  3. fileatime(url)返回文件的最后改变时间;
  4. filemtime(url)返回文件的最后修改时间;(注:"最后改变时间"不同于"最后修改时间".最后改变时间指的是对文件inode数据的任何改变,包括改变权限,所属组,拥有者等;而最后修改时间指的是对文件内容的修改);
  5. file_exists(url)检查文件或者目录是否存在,返回bool值
  6. is_readable(url)判断文件是否可读,返回bool值
  7. is_writable(url)判断文件是否可写,返回bool值
  8. date_default_timezone_set("Asia/Shanghai")时区设置
  9. date("Y-m-d H:i:s",time)时间格式
//设置时区
date_default_timezone_set("Asia/Shanghai");
//获取文件的创建时间
$time = filectime("text.txt");
//设置时间的格式
echo date("Y-m-d H:i:s",$time);
//判断文件是否可读
if(is_readable("text.txt")){
    echo "可读"
}else{
    echo "不可读"
}
//判断文件是否可写
if(is_writeable("text.txt"){
    echo "可写"
}else{
    echo "不可写"
})
六.读取目录
  1. opendir(url)打开目录句柄
  2. closedir(handle)关闭目录句柄
  3. readdir()返回由dir_handle指定目录的各个元素,可以使用此函数列出给定目录中的所有文件和子目录,失败返回false;
  4. scandir(directory)返回一个包含由 directory 指定路径中的文件和目录的数组,失败返回false;
  5. rmdir(pathname) 删除目录,注意:目录必须为空,否则报错;
  6. mkdir(pathname) 尝试新建一个由 pathname 指定的目录
//访问当前文件目录
$dir = opendir(".");

//用while循环获取当前目录的所有子目录
while($filename = readdir($dir)){
    echo "$filename"."<br>";
}

//获取当前目录子目录文件数组
$arr = scandir(".");
print_r($arr);

//创建目录"abc"
mkdir("abc");
//删除目录
//rmdir("abc");

//获取子目录"abc"中的目录数组
$arr2 = scandir("abc");
print_r($arr2);


//删除 "abc" 里的所有文件
for( $i = 2 ; $i < count($arr); $i++){
    echo "$arr[$i]";
    unlink("abc/".$arr[$i]);
}
//删除"abc"目录
rmdir("abc");
七.复制移动删除文件
  1. copy(source,dest)将文件从cource拷贝到dest,如果成功则返回true,失败则返回false
  2. rename(oldname,newname)改文件名,返回bool值
  3. unlink(url)删除文件,返回bool值
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值