PHP 文件操作

1.用一个函数遍历目录下所有文件

【1】使用函数

  • is_dir(): 函数检查指定的文件是否是目录,返回布尔值
  • scandir(directory): 函数返回指定目录中的文件和目录的数组

【2】遍历思路

  1. 首先接收一个目录名称,然后用scandir扫描,其中会有两个额外的目录是“."和”..“需要去掉
  2. 然后遍历扫描后的每个文件是否为目录文件,如果是则在回调到第一步扫描里面的文件

【3】实现代码

$dir="think";   //需要遍历的目录
 
function scanDirList($dir){
    $scan = scandir($dir);      //扫描文件夹
    foreach ($scan as $key => $value) {
        if($value != '.' && $value != '..'){    //去除掉多余的'.'和'..'两个文件
            $path = $dir.'/'.$value;    //拼接当前父级目录,使最终输出完整目录
            if(is_dir($path)){      
                /*
                  *判断扫描后的文件是否为目录,如果是则递归继续扫描,
                  *否则输出当前完整路径的文件名称
                */
                scanDirList($path);
            }else{
                echo "<p>$path</p>";
            }
        }
    }
}
 
scanDirList($dir);

2.写一个函数,尽可能高效的从一个标准url中取出文件的扩展名

<?php
  function getExt($url)
  {
    
    $arr = parse_url($url);

    /*
    *parse_url解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分
    *'scheme' => string 'http' (length=4)
    *'host' => string 'www.sina.com.cn' (length=15)
    *'path' => string '/abc/de/fg.php' (length=14)
    *'query' => string 'id=1' (length=4)
    */

    $file = basename($arr['path']);// basename函数返回路径中的文件名部分
    $ext = explode('.', $file);
    return $ext[count($ext)-1];
  }
 
  print(getExt('http://www.sina.com.cn/abc/de/fg.html.php?id=1'));
 
?>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值