php中打开目录并输出目录文件实现代码

 更新时间:2016年11月25日 16:49  点击:2238
opendir() 函数打开一个目录句柄,可由 closedir(),readdir() 和 rewinddir() 使用。

 

语法
opendir(path,context)
*/
$d=dir("c:windows");         //打开目录,并赋值给变量
echo "handle:".$d->handle."n";       //输出目录的handel属性
echo "<p>";
echo "path:".$d->path."n";        //输出目录的path属性
echo "<p>";
while(false!==($entry=$d->read()))       //通过循环读取对象的方法
{
  echo $entry."n";
}
$d->close();           //关闭目录句柄


//


$dir="c:windows";          //定义目录
if(is_dir($dir))           //如果变量为目录
{
  if($dh=opendir($dir));         //如果成功打开目录
  {
    echo "目录".$dir."成功打开";
  }
}
echo "<br>";
closedir($dh);          //关闭打开的目录句柄
echo "目录".$dir."已经关闭!";


///

$dir=" c:windows ";          //定义目录变量
if(is_dir($dir))           //判断变量是否为目录
{
  if($dh=opendir($dir))         //判断目录是否成功打开
  {
    while(($file=readdir($dh))!==false)      //循环读取目录中的文件信息
    {
      echo "filename:$file,filetype:".filetype($dir.$file)."n";  //输出文件名及文件类型
    }
    closedir($dh);          //关闭目录句柄
  }
}

///

if($handle=opendir('web'))         //如果目录顺利打开
{
  while(false!==($file=readdir($handle)))      //循环读取目录中的条目
  {
    if($file!="."&&$file!="..")        //如果文件不为当前或上级目录
    {
      echo "$filen";          //输出文件名称
    }
  }
  closedir($handle);          //关闭目录句柄
}

//

if($handle=opendir('08'))         //如果目录顺利打开
{
  while(false!==($file=readdir($handle)))      //循环读取目录中的条目
  {
    if($file!="."&&$file!="..")        //如果文件不为当前或上级目录
    {
      echo "$filen";          //输出文件名称
    }
  }
  rewind($handle);          //倒回目录句柄
  if(readdir($handle))       //判断是否倒回成功
  {
    echo "倒回成功";
  }
  else
  {
    echo "倒回失败";
  }
  closedir($handle);          //关闭目录句柄
}

//如果要对目录按字母排序如一

$files1=scandir($dir);         //按字母升序列出内容到数组
$files2=scandir($dir,1);        //按字母降序列出内容到数组

stream_context_create创建并返回一个文本数据流并应用各种选项,可用于fopen(),file_get_contents()等过程的超时设置、代理服务器、请求方式、头信息设置的特殊过程。

函数原型:resource stream_context_create ([ array $options [, array $params ]] )

看个实例

//定义options数组
$opts=array
(
  'http'=>array
  (
    'method'=>"get",
    'header'=>"accept-language: enrn"."cookie: foo=barrn"
  )
);
//创建数据流上下文
$context=stream_context_create($opts);
/*向指定地址发送http请求
请求中包含附加的头部信息*/
$fp=fopen('http://www.111cn.net','r',false,$context);
//输出文件指针处的所有数据
fpassthru($fp);
//关闭文件
fclose($fp);
/*
该代码的输出结果为:即请求的cookie值
array
(
    [foo] => bar
)
*/

实例二

$default_opts=array
(
  'http'=>array
  (
    'method'=>"get",
    'header'=>"accept-language: enrn"."cookie: foo=bar",
    'proxy'=>"tcp://10.54.1.39:8000"
  )
);
$alternate_opts=array
(
  'http'=>array
  (
    'method'=>"post",
    'header'=>"content-type: application/x-www-form-urlencodedrn"."content-length: " . strlen("baz=bomb"),
    'content'=>"baz=bomb"
  )
);
$default=stream_context_get_default($default_opts);
$alternate=stream_context_create($alternate_opts);
/* sends a regular get request to proxy server at 10.54.1.39
* for www.example.com using context options specified in $default_opts
*/
readfile('http://www.example.com');
/* sends a post request directly to www.example.com
* using context options specified in $alternate_opts
*/
readfile('http://www.example.com', false, $alternate);

本文章收藏了大量的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;
}

$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 添加的。
*/

在开发有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;  
?>

[!--infotagslink--]

相关文章

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

    下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
  • Jupyter Notebook读取csv文件出现的问题及解决

    这篇文章主要介绍了JupyterNotebook读取csv文件出现的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2023-01-06
  • 解决Pycharm的项目目录突然消失的问题

    今天小编就为大家分享一篇解决Pycharm的项目目录突然消失的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-22
  • Photoshop打开PSD文件空白怎么解决

    有时我们接受或下载到的PSD文件打开是空白的,那么我们要如何来解决这个 问题了,下面一聚教程小伙伴就为各位介绍Photoshop打开PSD文件空白解决办法。 1、如我们打开...2016-09-14
  • C#操作本地文件及保存文件到数据库的基本方法总结

    C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
  • 解决python 使用openpyxl读写大文件的坑

    这篇文章主要介绍了解决python 使用openpyxl读写大文件的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-13
  • C#实现HTTP下载文件的方法

    这篇文章主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • SpringBoot实现excel文件生成和下载

    这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
  • php无刷新利用iframe实现页面无刷新上传文件(1/2)

    利用form表单的target属性和iframe 一、上传文件的一个php教程方法。 该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失...2016-11-25
  • php批量替换内容或指定目录下所有文件内容

    要替换字符串中的内容我们只要利用php相关函数,如strstr,str_replace,正则表达式了,那么我们要替换目录所有文件的内容就需要先遍历目录再打开文件再利用上面讲的函数替...2016-11-25
  • PHP文件上传一些小收获

    又码了一个周末的代码,这次在做一些关于文件上传的东西。(PHP UPLOAD)小有收获项目是一个BT种子列表,用户有权限上传自己的种子,然后配合BT TRACK服务器把种子的信息写出来...2016-11-25
  • AI源文件转photoshop图像变模糊问题解决教程

    今天小编在这里就来给photoshop的这一款软件的使用者们来说下AI源文件转photoshop图像变模糊问题的解决教程,各位想知道具体解决方法的使用者们,那么下面就快来跟着小编...2016-09-14
  • C++万能库头文件在vs中的安装步骤(图文)

    这篇文章主要介绍了C++万能库头文件在vs中的安装步骤(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-23
  • Zend studio文件注释模板设置方法

    步骤:Window -> PHP -> Editor -> Templates,这里可以设置(增、删、改、导入等)管理你的模板。新建文件注释、函数注释、代码块等模板的实例新建模板,分别输入Name、Description、Patterna)文件注释Name: 3cfileDescriptio...2013-10-04
  • C#路径,文件,目录及IO常见操作汇总

    这篇文章主要介绍了C#路径,文件,目录及IO常见操作,较为详细的分析并汇总了C#关于路径,文件,目录及IO常见操作,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • php文件上传你必须知道的几点

    本篇文章主要说明的是与php文件上传的相关配置的知识点。PHP文件上传功能配置主要涉及php.ini配置文件中的upload_tmp_dir、upload_max_filesize、post_max_size等选项,下面一一说明。打开php.ini配置文件找到File Upl...2015-10-21
  • C#使用StreamWriter写入文件的方法

    这篇文章主要介绍了C#使用StreamWriter写入文件的方法,涉及C#中StreamWriter类操作文件的相关技巧,需要的朋友可以参考下...2020-06-25
  • ant design中upload组件上传大文件,显示进度条进度的实例

    这篇文章主要介绍了ant design中upload组件上传大文件,显示进度条进度的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-29
  • php实现文件下载实例分享

    举一个案例:复制代码 代码如下:<?phpclass Downfile { function downserver($file_name){$file_path = "./img/".$file_name;//转码,文件名转为gb2312解决中文乱码$file_name = iconv("utf-8","gb2312",$file_name...2014-06-07
  • 查找php配置文件php.ini所在路径的二种方法

    通常php.ini的位置在:复制代码 代码如下:/etc目录下或/usr/local/lib目录下。如果你还是找不到php.ini或者找到了php.ini修改后不生效(其实是没找对),请使用如下办法:1.新建php文件,写入如下代码复制代码 代码如下:<?phpe...2014-05-31