php文件操作(删除、修改时间、改名、获取文件所有者)

 更新时间:2016年11月25日 16:49  点击:1471

$file="test.txt";        //定义文件
echo fileowner($file);       //获取文件所有者
/*

fileowner() 函数返回文件的所有者。

若成功,则返回文件所有的用户 id。若失败,则返回 false。用户 id 以数字格式返回。

语法
fileowner(filename)

输出结果类似于:
0
*/

//以下函数实现删除所有".jpg"图片文件
foreach(glob("*.jpg")as $filename)       //查找与模式"*.jpg"匹配的文件
{
  echo "$filename size ".filesize($filename)."n";    //输出文件信息
  unlink($filename);          //删除文件
}
/*
glob() 函数返回匹配指定模式的文件名或目录。

该函数返回一个包含有匹配文件 / 目录的数组。如果出错返回 false。


*/

//将test.txt的最后修改时间改为2007年4月15日19点5分10秒
touch("test.txt",mktime(19,5,10,4,15,2007));

$file="test.txt";        //定义文件
echo fileperms($file);       //获取文件权限

/*
fileperms() 函数返回文件或目录的权限。

若成功,则返回文件的访问权限。若失败,则返回 false。

语法
fileperms(filename)
*/
//
$oldname="test.txt";          //定义原文件
$newname="test.txt.bak";         //定义修改后的文件名
if(rename($oldname,$newname))       //进行改名操作并对结果判断
{
  echo "改名成功!";         //输出相应信息
}
else
{
  echo "改名失败!";
}
/*
rename() 函数重命名文件或目录。

若成功,则该函数返回 true。若失败,则返回 false。

语法
rename(oldname,newname,context)

注释:在 php 4.3.3 之前,rename() 不能在基于 *nix 的系统中跨磁盘分区重命名文件。

注释:用于 oldname 中的封装协议必须和用于 newname 中的相匹配。

注释:对 context 的支持是 php 5.0.0 添加的。
*/

本文章收藏了大量的php中文件操作函数如有文件打开,创建,删除,更变组,读取写文件,文件上传以及打开远程文件,把内容写入文件等实例。

$fp=fopen("test.txt","r");
//以只读方式打开文件,将文件指针指向文件头
$fp=fopen("test.txt","r+");
//以读写方式打开文件,将文件指针指向文件头
$fp=fopen("test.txt","w");
//写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建
$fp=fopen("test.txt","w+");
//以读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建
$fp=fopen("test.txt","a");
//以写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建
$fp=fopen("test.txt","a+");
//以读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建
$fp=fopen("test.txt","wb+");
//以写入方式打开二进制文件,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建
$fp=fopen("c: est est.txt","r");
//在windows平台上,要转义文件路径中的每个反斜线,或者用斜线
$fp=fopen("http://www.domain.com/","r");
//以只读方式打开web地址
$fp=fopen("ftp://username:password@domain.com/test.txt","r");
//与ftp服务器连接,以username和password登录服务器
/*
本实例代码无输出结果
*/


$fp=fopen("test.txt","r");          //打开文件
$msg=fread($fp,filesize("test.txt"));        //读取文件内容到变量
print "$msg";            //输出文件内容
fclose($fp);            //关闭文件

//

$fp=popen("test.txt","r");          //以只读方式打开文件
$fp=popen($_post['command'],'r');
$read=fread($fp,2096);          //读取内容
echo $read;            //输出内容
pclose($fp);            //关闭文件
//这里用popen执行命令,命令是以post方式提交的参数,并返回执行结果。需要注意的是如果未找到要执行的命令,会返回一个合法的资源。它允许访问shell返回的任何错误信息。在打开了安全模式时,只能执行在safe_mode_exec_dir之内的程序,不能在指向程序的路径中包含..成分,即不能在指定目下外执行命令。

$fp=popen($_post['command'],'r');        //打开进程文件
$read=fread($fp,2096);          //读取进程文件指针到变量
echo $read;            //输出内容
pclose($fp);            //关闭进程文件

//

$file="test.txt";        //定义文件
if(file_exists($file))       //判断文件是否存在
{
  echo "下面清除缓存";
}
echo "<p>";
clearstatcache();       //清除文件状态缓存
if(file_exists($file))       //判断文件是否存在
{
  die('清除完毕');
}

//

$filename="test.txt";     //定义文件
$user="admin";      //定义用户
chgrp($filename,$group);    //改变文件/test/testfile.txt的所有者为"admin"

//

chmod("/test/testfile.txt",0600);
//只有文件所有者拥有读写权限
chmod("/test/testfile.txt",0644);
//文件所有者拥有读写权限,其他用户拥有只读权限
chmod("/test/testfile.txt",0755);
//文件所有者拥有所有权限,其他用户拥有读和执行权限
chmod("/test/testfile.txt",0750);
//文件所有者拥有所有权限,文件所有者所在用户组拥有读和执行权限

//

$file="test.txt";         //定义文件
delete($file);         //删除文件
//在php编程时一般还是用unlink函数来删除文件。


//

//以下代码实现文件上传功能,首先用move_uploaded_file函数上传文件;如果失败就用copy函数上传文件,上传到指定目录并修改目录属性。
//使用此代码要有文件上传权限,还要定义$path上传路径。另外必须有上传内容。单独使用,无输出内容
if(function_exists('move_uploaded_file') && move_uploaded_file($attachment,$path))
{
  chmod($path,0666);       //改变文件访问模式
  $attachment=$path;
}
elseif(copy($attachment,$path))     //如果move_upload_file就用cope()
{
  chmod($path,0666);       //改变文件访问属性
  $attachment=$path;
}

在开发有preg_replace preg_grep preg_split preg_replace_callback preg_quote进行一些必要操作哦。

$temp[0]="abc";
$temp[1]=123;
$temp[2]="us.";
$temp[3]=5;
$temp[4]=58;
$temp[5]="cs";
//以上代码定义一个数组,其中既有数字也有字符串
echo "数组temp的内容为:";
echo "<p>";
//通过循环输出数组内容
for($i=0;$i<count($temp);$i++)
{
 echo $temp[$i];
 echo ",";
}
echo "<p>";
echo "经过preg_grep()处理过之后的新数组为:";
$temp2=preg_grep("/^(d)d*/",$temp);   //使用preg_grep进行处理
//上式的正则表达式模式中"//"为定界符,其内容为所有整数元素
echo "<p>";
print_r($temp2);       //通过循环输出新数组内容

//

$str='string';           //定义字符串
$chars=preg_split('//',$str,-1,preg_split_no_empty);   //用正则表达式执行分割操作
print_r($chars);           //输出结果数组:array([0]=>s[1]=>t[2]=>r[3]=>i[4]=>n[5]=>g)


//

$string="april 15, 2003";         //定义字符串
$pattern="/(w+)(d+),(d+)/i";        //定义匹配模式
$replacement="${1}1,$3";        //定义替换内容
print preg_replace($pattern,$replacement,$string);    //输出结果april1,2003

//

$text="april fools day is 04/01/2002n";       //定义字符串
$text.="last christmas was 12/24/2001n";       //字符串更新
$pattern="|(d{2}/d{2}/)(d{4})|";         //定义匹配模式
function next_year($matches)         //定义回调函数
{
  return $matches[1].($matches[2]+1);       //返回值
}
$result=preg_replace_callback($pattern,"next_year",$text);   //用回调函数执行搜索替换
echo $result;            //输出结果"april fools day is 04/01/2003 last christmas was 12/24/2002"

//

$keywords="'php教程'";          //定义字符串
$keywords=preg_quote($keywords,"'");      //转义其中的"'"
echo $keywords;  
?>

echo getcwd()."n";         //取得当前工作目录
echo "<br>";
chdir('08');          //改变工作目录
echo getcwd() . "n";         //再次取得当前工作目录

getcwd() 函数返回当前目录。

若成功,则返回当前工作目录,否则返回 false。

语法
getcwd()

//

echo getcwd() . "n";         //取得当前工作目录
chdir('web');          //改变工作目录
echo getcwd() . "n";         //再次取得工作目录

chdir() 函数把当前的目录改变为指定的目录。

若成功,则该函数返回 true,否则返回 false。

语法
chdir(directory)

数 format 是转换的格式,以百分比符号 ("%") 开始到转换字符结束。下面的可能的 format 值:

%% - 返回百分比符号
%b - 二进制数
%c - 依照 ascii 值的字符
%d - 带符号十进制数
%e - 可续计数法(比如 1.5e+3)
%u - 无符号十进制数
%f - 浮点数(local settings aware)
%f - 浮点数(not local settings aware)
%o - 八进制数
%s - 字符串
%x - 十六进制数(小写字母)
%x - 十六进制数(大写字母)

看实例
*/
$str="hello";           //定义字符串
$number=123;           //定义数值
vprintf("%s world. day number %u",array($str,$number));   //输出格式化的字符串

//实例二
$num1=123;           //定义数值1
$num2=456;           //定义数值2
$txt=vsprintf("%f%f",array($num1,$num2));     //输出格式化字符串到变量
echo $txt; 

/*

printf() 函数输出格式化的字符串。

语法
printf(format,arg1,arg2,arg++)
arg1, arg2, ++ 等参数将插入到主字符串中的百分号 (%) 符号处。该函数是逐步执行的。在第一个 % 符号中,插入 arg1,在第二个 % 符号处,插入 arg2,依此类推。

*/
$str="hello world";          //定义首尾有空格的字符串
printf($str);           //输出转换后的结果

/*

sprintf() 函数把格式化的字符串写写入一个变量中。

语法
sprintf(format,arg1,arg2,arg++)

*/
$str="hello";          //定义字符串
$number=123;          //定义数值
$txt= ("%s world. day number %u",$str,$number);  //返回格式化字符串到变量
echo $txt;           //输出结果hello world. day number 123


$str="123456abcdedfbcdef";         //定义字符串
sscanf($str, "%[^a-z]", $result);         //取其中的非大写字母
printf("result=%s", $result);         //输出结果

/*以下代码最终显示11,并将"hello world"字符串写入到test.txt文件*/
$str="hello";          //定义字符串
$file=fopen("test.txt","w");        //打开文件
echo vfprintf($file,"%s world",$str);      //输出数据到流并显示结果11

[!--infotagslink--]

相关文章

  • php读取zip文件(删除文件,提取文件,增加文件)实例

    下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
  • 在java中获取List集合中最大的日期时间操作

    这篇文章主要介绍了在java中获取List集合中最大的日期时间操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-15
  • 教你怎么用Java获取国家法定节假日

    这篇文章主要介绍了教你怎么用Java获取国家法定节假日,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下...2021-04-23
  • 删除条目时弹出的确认对话框

    复制代码 代码如下: <td> <a href="/member/life/edit_ppt/<?php echo $v->id;?>" class="btn">编辑</a> <a href="javascript:;" onclick="if(confirm('您确定删除这条记录?')){location.href='/member/life/d...2014-06-07
  • mysql中获取一天、一周、一月时间数据的各种sql语句写法

    创建表:复制代码 代码如下:create table if not exists t( id int, addTime datetime default '0000-00-00 00:00:00′)添加两条初始数据:insert t values(1, '2012-07-12 21:00:00′);insert t values(2, '2012-07...2014-05-31
  • .NET/C# 使用Stopwatch测量运行时间

    这篇文章主要介绍了.NET/C# 使用Stopwatch测量运行时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • jQuery动态添加与删除tr行实例代码

    最近由于项目的需要,需要动态的添加和删除table中的tr,感觉用JS可以实现,但是在网上找了一下,单纯的自己写JS,感觉太麻烦,而且也不好维护。于是想到了最近学的jQuery。这篇文章给大家用实例介绍了jQuery动态添加与删除tr行的方法,有需要的朋友们可以参考借鉴。...2016-10-20
  • php跨网站请求伪造与防止伪造方法

    伪造跨站请求介绍伪造跨站请求比较难以防范,而且危害巨大,攻击者可以通过这种方式恶作剧,发spam信息,删除数据等等。...2013-10-01
  • JavaScript时间操作之年月日星期级联操作

    这篇文章主要介绍了JavaScript时间操作之级联日期选择操作,涉及到年、月、日、星期,感兴趣的小伙伴们可以参考一下...2016-01-18
  • C#中动态显示当前系统时间的实例方法

    想在网页中动态地显示当前系统的时间,找了好多,不过都是一些停在那里不动的。。。不过皇天不负有心人,终于让我找到了...2020-06-25
  • Centos中彻底删除Mysql(rpm、yum安装的情况)

    我用的centos6,mysql让我整出了各种问题,我想重装一个全新的mysql,yum remove mysql-server mysql之后再install并不能得到一个干净的mysql,原来的/etc/my.cnf依然没变,datadir里面的数据已没有任何变化,手动删除/etc/my.cn...2015-03-15
  • 非常全面的php日期时间运算汇总

    实例讲解之前,先来介绍几个核心函数: mktime 函数 mktime() 函数返回一个日期的 Unix 时间戳。 参数总是表示 GMT 日期,因此 is_dst 对结果没有影响。 参数可以从右到左依次空着,空着的参数会被设为相应的当前 GMT 值。...2015-11-08
  • nodejs文件操作模块FS(File System)常用函数简明总结

    件系统操作相关的函数挺多的。首先可以分为两大类。一类是异步+回调的。 一类是同步的。在这里只对异步的进行整理,同步的只需要在函数名称后面加上Sync即可1. 首先是一类最常规的读写函数,函数名称和形式,应该是起源于C...2014-06-07
  • MyBatis-Plus的物理删除和逻辑删除(使用场景)

    数据库中的数据删除会分为两种:物理删除 和 逻辑删除,接下来通过本文给大家介绍MyBatis-Plus的物理删除和逻辑删除使用场景分析,感兴趣的朋友一起看看吧...2021-09-25
  • 常用的日期时间正则表达式

    常用的日期时间正则表达式 下面收藏了大量的日期时间正则匹配函数,包括分钟,时间与秒都能达到。 正则表达式 (?n:^(?=d)((?<day>31(?!(.0?[2469]|11))|30(?!.0?2)|29(...2016-11-25
  • postgresql 中的时间处理小技巧(推荐)

    这篇文章主要介绍了postgresql 中的时间处理小技巧(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-29
  • 从chrome调试工具中把拖延时间的东西找出来

    我打开android开发手册的时候:http://www.csdn123.com/html/android/reference/packages.html 发现打开速度很慢,我用按了一下F12打开调试面板,切换到网络的选项卡network...2016-05-19
  • C# 当前系统时间获取及时间格式详解

    这篇文章主要介绍了C# 当前系统时间获取及时间格式详解的相关资料,这里提供代码实例,帮助大家学习参考,需要的朋友可以参考下...2020-06-25
  • 帝国CMS显示指定时间内更新的信息数量

    /*解决代码高亮太长不换行*/ .syntaxhighlighter{word-break:break-all;} uParse('#newstext', {rootPath: '/e/extend/ueditor/'}) 帝国CMS显示指定时间内更新的信息数...2016-11-01
  • js实现上传文件添加和删除文件选择框

    这篇文章主要为大家详细介绍了js实现上传文件添加和删除文件选择框 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-25