<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
* php文件操作
*/
header("Content-Type: text/html; charset=utf-8"); //设置编码
header( "Expires: -1" ); //立即过期
//
//basename() 获取文件名
$path="F:\a.txt";
echo basename($path); //输出a.php
echo "<br>";
echo basename($path, ".php"); //输出a
echo "<br>";
//dirname()获取路径部分
echo dirname($path); //输出 /home/test
echo "<br>";
//pathinfo() 返回数组,包含四部分目录,文件名,基本名,扩展名
var_dump( pathinfo($path));
echo "<br>";
//fstat()获取文件信息
$fp= fopen($path, "r");
$fstat= fstat($fp);
var_dump($fstat);
fclose($fp);
echo "<br>";
//filesize() 返回文件大小的字节数
echo "size: ".filesize($path);
echo "<br>";
//disk_total_space() 返回目录所在磁盘的总大小
//disk_free_space() 获取目录所在磁盘分区的可用空间
echo "total space: ".disk_total_space("c:")."<br>";
echo "free space: ".disk_free_space("C:");
echo "<br>";
//fileatime() 获取最后访问时间
//filectime 获取最后改变时间(任何数据的修改)
//filemtime() 获取最后修改时间(内容的修改)
echo "最后访问呢时间:".fileatime($path)."<br>";
echo "最后改变时间: ".filectime($path)."<br>";
echo "最后修改时间: ".filemtime($path)."<br>";
//file_exists 检查文件是否存在,存在返回true,不存在返回false
echo "文件是否存在:".file_exists($path)."<br>";
//scandir() 获取目录下的文件
$filenames= scandir("f:/");
foreach ($filenames as $key=>$value){
echo iconv("GBK", "UTF-8", $value)."<br>";
}
//////////////////////////////////IO操作///////////////////////////////////////////////////////
/**
* fopen 打开文件或者url
* 'r' 只读方式打开,将文件指针指向文件头。
* 'r+' 读写方式打开,将文件指针指向文件头。
* 'w' 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
* 'w+' 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
* 'a' 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
* 'a+' 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
* 'x' 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,
* 'x+' 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE
*/
/**
* file() 把整个文件读入一个数组中,每一行对应数组中一个数据
*/
$lines=file("http://www.baidu.com");//数组
//var_dump($lines);
echo implode("", $lines);//转为字符串,输出
echo "<br>";
$lines=file($path);
echo implode("", $lines);
echo "<br>";
/**
* fgets() 读取一行。 从 handle 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。
*/
$fp=fopen($path,"r");
while(!feof($fp)){
echo fgets($fp,4096);
}
fclose($fp);
echo "<br>";
/**
* fread() 以二进制方式读取文件
*/
$fp=fopen($path,"r");
$content= fread($fp, filesize($path));
echo $content;
fclose($fp);
/**
* fwrite() 以二进制方式进行写操作
*/
$fp=fopen($path,"a");
if($fp){
echo fwrite($fp, "新写入数据");
}
fclose($fp);
/**
* fputs 以字符方式写入
* rewind 移动文件指针到文件开始处
*/
$fp= fopen("f:\bb.txt", "w");
fwrite($fp, "内容");
fclose($fp);