目录常用函数
basename()返回目录的文件名部分(文件名+扩展名);
dirname()返回目录的路径部分;
pathinfo获取文件路径的信息(存在数组中);
realpath返回绝对路径
<?php
$path='E:\wamp\www\study\demo2.php';
$confpath='demo2.php';
echo realpath($confpath);
//E:\wamp\www\study\demo2.php
?>
filesize()返回指定文件大小(字节);
disk_free_space放回磁盘的可用空间(字节);
disk_total_space返回磁盘总空间(字节);
fileatime返回上次访问时间;
fliectime返回最后的改变时间(所有者权限等);
filemtime返回最后的修改时间(文件里的内容里修改);
文件操作
打开文件
fopen(path,mode)函数返回的是资源类型resource
写文件
fwirte(res,string)
关闭文件
fclose(res)
file_put_contents(filename,string);//没有就创建
读取文件
fgetc(res)读出一个字符,并将指针移动到下一个字符
fegts(res)读出一行字符,可以指定一行显示的长度
fgetss(res)从文件指针中读取一行并过滤掉HTML标记
fread(res,length)读取定量的字符
fpassthru(res)输出文件指针出的所有剩余数据
file(path)把一个文件读入一个数组(每行分组存放在数组中)
readfile(path)读入一个文件,是将整个文件读出来
file_get_contents(path)可以读入数据到缓冲区,然后echo来打印
feof(res)检测文件指针是否到了文件结尾位置
<?php
$path='file.txt';
$fp=fopen($path,'r');
while (!feof($fp)) {
echo fgetc($fp);
}
fclose($fp);
?>
查看文件或路径是否存在
file_exists(path)
删除文件
unlink(path)
倒回文件指针的位置
rewind(res)
返回文件指针读/写的位置
ftell(res)
给文件指针定位
fseek(res,index)
文件锁定
flock(res,operation)
打开路径制定的目录流
opendir(path)
关闭目录流
closedir(res)
返回目录中各个元素
readdir(res)
列出指定路径中的文件和目录
scandir(path)
删除制定的目录
rmdir(path)
重命名文件函数
rename(oldPath,newPath)
函数调用注意点
函数调用不区分大小写,例子:函数fn();调用方式fn(),fN(),Fn(),FN()等价,变量名是区分大小写的
PHP里存在引用参数
理解作用域
变量的作用域可以控制变量在哪里是可见并且可用的。不同的编程语言有不同的变量作
用域规则。PHP 具有相当简单的规则:
在函数内部声明的变量作用与是从声明它们的那条语句开始到函数末尾。这叫做函数作 用域。这些变量成为局部变量。
在函数外部声明的变量作用域是从声明它们的那条语句开始到文件末尾,而不是函数内 部。这叫做全局作用域。这些变量成为全局变量.
global可以将变量变为全局变量
<?php
$test=10;
function fn(){
global $test;
$test=100;
}
echo $test;
echo "<br>";
fn($test);
echo $test;
?>
可以通过使用超级全局变量$GLOBAL,可以访问或改变全局作用域中的任何变量。
<?php
$GLOBALS['a'] = 5;
function fna() {
$GLOBALS['a'] = 20;
}
fna();
echo $GLOBALS['a'];
?>
创建自己的函数库
通常将函数集文件存放在 library 文件夹里,然后通过文件调用即可。文件名约定促成
可以取名为 tool.library.php,tool 可以根据情况来设定,后面两个照抄!
文件包含
为了确保重用性和模块性,最普遍的方式是把功能组件隔离为单独的文件,然后在需要的时候组装.
include()语句将在其被调用的位置处判断并包含一个文件。包含一个文件与在该语句所
在位置复制该文件的数据具有相同的结果。
<?php
include 'include.php';
?>
include_once()函数的作用与 include()相同,不过它会首先验证是否已经包含了该文件。
如果包含了该文件,则不再执行 include_once()。
require与include区别
equire()语句和 include()语句几乎是等价的。二者的差异在于,当这两个语句调用失败 后,require()将给出一个致命错误,而 include()只是给出一个警告
魔法常量
__FILE__ 当前文件名
__LINE__ 当前行号
__FUNCTION__ 当前函数名
__CLASS__ 当前类名
__METHOD__ 当前方法名