合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
1、pathinfo()函数以数组或字符串的形式返回关于文件路径的信息。 $arry = pathinfo('aa.txt'); echo '<pre>'; print_r($arry); /* Array ( [dirname] => . [basename] => aa.txt [extension] => txt [filename] => aa ) */ 2、realpath()函数把相对路径转换成绝对路径。 echo realpath('.'); //D:\wamp\www\myPhp 3、文件锁flock()函数,flock(file,lock,block)。 file—必需。规定要锁定或释放的已打开的文件。 lock—必需。规定要使用哪种锁定类型。 (1)要取得共享锁定(读取的程序),将 lock 设为 LOCK_SH(PHP 4.0.1 以前的版本设置为 1)。也就是某个文件在当前脚本被锁定期间,其他脚本不能对这个文件进行内容写入,只能读取。 (2)要取得独占锁定(写入的程序),将 lock 设为 LOCK_EX(PHP 4.0.1 以前的版本中设置为 2)。某个文件在当前脚本被锁定期间,其他脚本不能对这个文件进行吸入和读取。 (3)要释放锁定(无论共享或独占),将 lock 设为 LOCK_UN(PHP 4.0.1 以前的版本中设置为 3)。文件解锁之后,其他脚本可以对这个文件进行任意的写入和读取操作。 (4)如果不希望 flock() 在锁定时堵塞,则给 lock 加上 LOCK_NB(PHP 4.0.1 以前的版本中设置为 4)。一个文件只需要被锁定一次,不需要被多个脚本多次锁定,这样会造成堵塞。也就是只有在当前脚本中的锁被释放之后,其他脚本才能再次锁定这个文件。 block— 可选。若设置为 1 或 true,则当进行锁定时阻挡其他进程。 测试代码如下(test.php和test_1.php): /*test.php中的代码*/ $file = fopen('aa.txt','r+'); fwrite($file,'hello world'); flock($file,LOCK_EX+LOCK_NB); sleep(3); flock($file,LOCK_UN); fclose($file); /*test_1.php中的代码*/ $file = fopen('aa.txt','r+'); fwrite($file,'php视频教程'); rewind($file); $content = fread($file,filesize('aa.txt')); echo $content; fclose($file); 上面两个文件中的代码最后执行结果是,aa.txt文本中的内容是hello world,并且在aa.txt在test.php脚本中被锁定3s期间,test_1.php无法对aa.txt进行任何的写入和读取甚至锁定操作。 4、tempnam()函数在某个目录下随机生成一个不重名的临时文件(后缀是tmp)。 $file = tempnam('.','test_'); echo $file.'<br/>'; 5、tmpfile()函数以读写(w+)模式建立一个具有唯一文件名的临时文件。相当于建立了一个临时文件,立刻将他fopen打开了。接下来可以直接进行读写操作! $file = tmpfile(); fwrite($file,'hello world'); rewind($file); fpassthru($file);//hello world //可以把tmpfile()生成的文件想象成一个临时虚拟的文件,在目录下并不存在, //所以无法用fread()去读取,只能用fpassthru读取在缓冲区。 fclose($file); 注意:用tmpfile()生成的临时文件会在fclose文件关闭或脚本执行完成之后自动删除。