PHP-文件与目录操作

本文详细介绍PHP中文件和目录的操作方法,包括文件的打开、读取、写入及关闭等基本操作,同时涵盖目录的创建、遍历等功能。通过实际代码示例,帮助读者快速掌握PHP文件系统操作技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下是在wamp环境下PHP的文件和目录操作总结>>

<?php


/*

文件操作

   fopen(文件地址,模式) 打开文件或url http
   模式
      r 只读模式,文件指针指向头部,如果文件不存在报错
      r+ 读写模式,文件指针指向头部,如果文件不存在报错
      w 只写模式,文件指针指向头部,清空文件内容,如果文件不存在,则创建文件
      w+ 读写模式,文件指针指向头部,清空文件内容,如果文件不存在,则创建文件
      a 只写模式,文件指针指向尾部,如果文件不存在,则创建文件
      a+ 读写模式,文件指针指向尾部,如果文件不存在,则创建文件

   fgetc  从资源中读取一个字节字符
   fgets  从资源中读取一行字符
   fgetss 从资源中读取一行字符, 会过滤掉html标签
   fread  从资源中读取指定字节长度字符
   fwrite 往资源中写数据
   rewind 把文件指针移到头部
   fclose 


   readfile 读取文件内容 
   fpassthru 从当前指针所在位置开始读,读到文件尾部

   file 把文件内容读到一个数组中,每一行数据就是数组的每一个元素

   file_get_contents 把文件内容读到一个字符中
   file_put_contents 把字符串写到一个文件中 

   unlink  删除文件
   copy 复制文件
   rename 重命名文件 剪切文件

   ftell 返回当前文件指针所在位置
   feof 检测文件是否到末尾
   fseek 移动文件指针
   flock 锁文件

 */

$resData = @fopen("test.txt", "a+") or die('文件不存在');
var_dump(fgetc($resData));
echo fread($resData, 3);
while($strData=fgets($resData)){
    echo $strData."<br/>";
}

fwrite($resData, 'abc');
rewind($resData);
echo fgets($resData);
fwrite($resData, 'abc');
rewind($resData);
echo fgets($resData);



$resData = @fopen("http://www.huanqiu.com/", "r") or die('文件不存在');
$strDatax='';
while($strData=fgets($resData)){
    $strDatax.=$strData;
}
preg_match('/<div id="block_id_42876" class="admin_block" blockid="42876">[\s\S]+?<\/div>/', $strDatax,$arr);
preg_match_all('/<h4>[\s\S]+?<\/h4>/', $arr[0], $arrx);
foreach ($arrx[0] as $key => $value) {
    echo $value;
}
fclose($resData);

$resData = @fopen("test.txt", "a+") or die('文件不存在');
while($strData=fgets($resData)){
    echo htmlspecialchars($strData);
}



readfile("test.txt");
echo "<hr/>";
$resData = fopen("test.txt","r");
fread($resData,10);
fpassthru($resData);


$arr = file("http://www.baidu.com");
foreach($arr as $value){
  echo $value;
}




$strData = file_get_contents("http://www.baidu.com");
echo $strData;



$resData = @fopen("http://www.huanqiu.com/", "r") or die('文件不存在');
$strDatax='';
while($strData=fgets($resData)){
    $strDatax.=$strData;
}
preg_match('/<div id="block_id_42876" class="admin_block" blockid="42876">[\s\S]+?<\/div>/', $strDatax,$arr);
preg_match_all('/<h4>[\s\S]+?<\/h4>/', $arr[0], $arrx);
$strDatay="";
foreach ($arrx[0] as $key => $value) {
    $strDatay.=$value;
}
fclose($resData);
file_put_contents("log.txt",$strDatay);




echo unlink("log.txt")?"success":"failed";

echo copy("C:\Users\Administrator\Desktop\abc.txt","./abc.txt")?"success":"failed";
echo rename("C:\Users\Administrator\Desktop\abc1.txt","./abc1.txt")?"success":"failed";

$resData = fopen("abc1.txt","r");
fread($resData,3);
var_dump(ftell($resData));


$resData = fopen("abc1.txt","r");
fseek($resData, 3);
while(!feof($resData)){
   echo fgetc($resData);
}


**目录dir相关操作**

/*

目录操作


   file_exists 检查给定的参数是否是一个文件或目录
   is_dir  检查给定的参数是否是一个目录
   opendir 打开目录
   readdir 读目录里的数据

   date 格式化时间
   mkdir 创建目录
   closedir 关闭目录资源

 */

/*


$filename = "text.txt";
if(file_exists($filename)){
    fopen($filename,"r");
}else{
    exit('文件不存在');
}



$dirName = "./";
if(is_dir($dirName)){
    $resData = opendir($dirName);
    var_dump($resData);
}else{
     exit('目录不存在');
}


$dirName = "../";
if(is_dir($dirName)){
    $resData = opendir($dirName);
    while($strData = readdir($resData)){
         if($strData=="."||$strData==".."){
            continue;
         }
         if(is_dir($dirName.$strData)){
                echo date("Y/m/d H:i",filemtime($dirName.$strData))."----dir---".$strData."<br/>";
         }else{
                echo date("Y/m/d H:i",filemtime($dirName.$strData))."----file---".$strData."<br/>";
         }

    }
}else{
         exit('目录不存在');
}

closedir($resData);



$dirName = "test";
if(!is_dir($dirName)){
   mkdir($dirName);
}else{
  echo "已存在";
  rmdir($dirName);
}



*/


echo getcwd();
chdir("../");
echo "<hr/>";
echo getcwd();
echo "<hr/>";

$resData = opendir(getcwd());
while($strData=readdir($resData)){
  echo $strData."<br/>";
}

“`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值