欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第6章 目录与文件

程序员文章站 2024-01-25 14:04:59
...

Demo1.php

<?php
	//将一个路径赋给一个变量
	//它目前来说,只是一个字符串,字符串表示的是一个目录的路径
	//文件名包含,文件的名称 + 文件的扩展名(就是.后面的文件类型)
	//文件的扩展名说白了就是文件后缀
	$path = 'C:\AppServ\www\Basic6\Demo1.php';
//	echo basename($path);
//	echo '<br/>';
//	//dirname -- 返回路径中的目录部分
//	//dirname 返回路径的目录部分
//	echo dirname($path);
//	echo '<br/>';
//	//获取路径文件的信息
//	print_r(pathinfo($path));
	
	$array_path = pathinfo($path);
	echo $array_path['dirname']; //这个打印出的目录 C:\AppServ\www\Basic6
	echo $array_path['basename']; //这个打印出的是文件名 Demo1.php
?>

 

Demo2.php

<?php
	//这个叫做绝对路径
	//$path = 'C:\AppServ\www\Basic6\Demo2.php';
	//这个叫做相对路径
//	$path = 'Demo2.php';
//	echo $path;	
	$path = '../index.php'; //这也是相对路径
	echo realpath($path);
?>

 

Demo3.php

<?php
	$path = 'C:\AppServ\www\Basic6\Demo3.php';
	echo round(filesize($path)/1024,2).'KB';	
?>

 

Demo4.php

<?php
	//可用空间的查看 disk_free_space
	echo round(disk_free_space('C:')/1024/1024/1024,2).'GB';
	echo '<br/>';
	//总空间
	echo round(disk_total_space('C:')/1024/1024/1024,2).'GB';
?>

 

Demo5.php

<?php
	$path = 'C:\AppServ\www\Basic1\Demo1.php';
	//我们要做的是将这个时间戳翻译成正常的日期
	//echo fileatime($path);
	//调整一下时区
	date_default_timezone_set('Asia/Shanghai');
	//格式化一个本地日期
	//echo date('Y-m-d H:i:s');
	//fileatime -- 取得文件的上次访问时间
	echo '最后访问:'.date('Y-m-d H:i:s',fileatime($path)).'<br/>';
	//filectime -- 取得文件的 inode 修改时间,文件所有者,权限
	echo '权限所有者等:'.date('Y-m-d H:i:s',filectime($path)).'<br/>';
	//filemtime -- 取得文件修改时间,文件里面的内容修改后的时间
	echo '内容修改时间:'.date('Y-m-d H:i:s',filemtime($path));
?>

 

Demo6.php

<?php
	//打开一个文件
	//第一参数表明哪个文件 ,第二参数表明模式, w 只写
	//w 如果,file.txt 已经有了,并且有数据了。那么这个文件,重新创建
	//如果没有 file.txt 这个文件,那么我就自行创建
	
//	//fopen -- 打开文件或者 URL
//	//fopen 返回的是资源类型 resource,我们一般称它为句柄,或者叫资源句柄
//	$fp = fopen('file.txt','w');	
//	
//	//想文件里写入一些数据
//	//fwrite($fp,"阅谁问君诵,水落清香浮。");
//	
//	$outString = "阅谁问君诵,水落清香浮。";
//	echo strlen($outString);//获取长度
//	fwrite($fp,$outString,strlen($outString));
//	
//	//fclose -- 关闭一个已打开的文件指针
//	//当打开一个文件的时候,习惯性的将它关闭掉
//	fclose($fp);

	//就只有一句话,不需要任何其他灵活的事情的使用
	//这个比较在行,只有在 PHP5 的版本才可以使用
	file_put_contents('file2.txt','阅谁问君诵,水落清香浮。');
?>

 

Demo7.php

<?php
	//第一种写法
	//\r\n 可以让文本文件换行
	$fp = fopen('file.txt','a');	
	$outString = "阅谁问君诵,\r\n水落清香浮。\r\n";
	fwrite($fp,$outString,strlen($outString));	
	fclose($fp);
	//第二种写法
//	file_put_contents('file2.txt','阅谁问君诵,\r\n水落清香浮。');
?>

 

Demo8.php

<?php
	//现在要读出文件
	$fp = fopen('file.txt','r');
	//fgetc -- 从文件指针中读取字符
//	echo fgetc($fp);
//	echo fgetc($fp);
//	echo fgetc($fp);
//	echo fgetc($fp); //阅谁
	//fgets -- 从文件指针中读取一行
	//fread() 从 handle 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。
	//echo fgets($fp,20);
	//可以过滤HTML
	//echo fgetss($fp,20);
	//echo fread($fp,2);
	//fread() 从 handle 指向的文件中读取最多 length 个字节数
	//echo fread($fp,30);
	//fpassthru -- 输出文件指针处的所有剩余数据
	//fpassthru 本身还包含了向浏览器输出的功能,所以不需要 echo
	echo fpassthru($fp);
	fclose($fp);	
?>

 

Demo9.php

<?php
	//file -- 把整个文件读入一个数组中
	//file 是按照每行来分组存放在一个数组中
	//print_r(file('file.txt'));
	
	//而这个打印出的是文件中的第二行。
//	$array_file = file('file.txt');
//	echo $array_file[4];
	
	//readfile -- 输出一个文件
	//readfile 是将整个文件读出来,readfile 本身能够直接输入浏览器,所以不需要 echo
	//返回值是文件字节的总长度
	//echo readfile('file.txt');

	//file_get_contents -- 将整个文件读入一个字符串
	//file_get_contents 可以读入数据到缓冲区,然后通过 echo 来打印
	echo file_get_contents('file.txt');
?>

 

Demo10.php

<?php
	//现在要读出文件
	$fp = fopen('file.txt','r');
	//feof -- 测试文件指针是否到了文件结束的位置
	while (!feof($fp)){
		echo fgetc($fp);
	}
	fclose($fp);	
?>

 

Demo11.php

<?php
	//比如读取一个文件的时候,你必须保证这个文件一定要存在,才可以操作
	//否则就报错,不让执行
	//这个时候就有必须做一个检测
	//file_exists -- 检查文件或目录是否存在
	if(file_exists('file.txt')){
		echo '执行各种各样的文本读写操作!';
	}else{
		echo '此本文不存在,请管理员在后台重新生成一下。';
	}
?>

 

Demo12.php

<?php
	//文本大小,字节
	//echo filesize('file.txt');	
	//删除一个文件 
	//unlink('a.txt');
	//rewind -- 倒回文件指针的位置
	//ftell -- 返回文件指针读/写的位置
	//rewind -- 倒回文件指针的位置
	//a 表示可以追加,b 表示二进制,这样可移植性好
	//w
	$fp = fopen('file.txt','ab');
//	echo fgetc($fp);
//	echo fgetc($fp);
//	echo fgetc($fp);
//	echo fgetc($fp);
//	rewind($fp);
//	echo ftell($fp);
//	fseek($fp,20);
//	echo ftell($fp);
//	echo fgetc($fp);
//	echo fgetc($fp);
	flock($fp,LOCK_EX);//锁定
	fwrite($fp,'This is lock!');
	flock($fp,LOCK_UN);//解锁
	fclose($fp);
?>

 

Demo13.php

<?php
//	//打开一个目录
//	@$dir = opendir('C:\AppServ\www\Basic6');
//	//读出目录,使用一个循环来读出
//	//readdir -- 从目录句柄中读取条目
//	//字符串如果是布尔值,就是说,字符串不为空,那么就是真,为空就是假
//	while (!!$file = readdir($dir)){
//		echo $file.'<br/>';
//	}
//	//关闭
//	@closedir($dir);
	//print_r(scandir('C:\AppServ\www\Basic6'));
	//删除一个目录
//	//绝对路径的删除目录
//	rmdir('C:\AppServ\www\Basic6\delMe');
//	//相对路径的删除目录
//	rmdir('delMe');
	//删除一个文件
	//ssunlink('file2.txt');
	//重命名,这里,目录和文件都能改
	//rename('file.txt','file2.txt');
?>