PHP文件操作之获取目录下文件与计算相对路径的方法
《PHP文件操作之获取目录下文件与计算相对路径的方法》要点: 获取目次下文件PHP实战 1、获取目录下文件,不包含子目录PHP实战 //获取某目录下所有文件、目录名(不包含子目录下文件、目录名) $handler = opendir($dir); while (($filename = readdir($handler)) !== false) {//务必使用!==,防止目录下出现类似文件名“0”等情况 if ($filename != "." && $filename != "..") { $files[] = $filename ; } } } closedir($handler); //打印所有文件名 foreach ($filens as $value) { echo $value."<br />"; } 2、获取目录下所有文件,包含子目录PHP实战 function get_allfiles($path,&$files) { if(is_dir($path)){ $dp = dir($path); while ($file = $dp ->read()){ if($file !="." && $file !=".."){ get_allfiles($path."/".$file,$files); } } $dp ->close(); } if(is_file($path)){ $files[] = $path; } } function get_filenamesbydir($dir){ $files = array(); get_allfiles($dir,$files); return $files; } $filenames = get_filenamesbydir("static/image/"); //打印所有文件名,包括路径 foreach ($filenames as $value) { echo $value."<br />"; } 计算两个文件之间的相对路径办法 例如: function getRelativePathPHP实战 <?php /** 计算path1 相对于 path2 的路径,即在path2引用paht1的相对路径 * @param String $path1 * @param String $path2 * @return String */ function getRelativePath($path1,$path2){ $arr1 = explode('/',$path1); $arr2 = explode('/',$path2); // 获取相同路径的部门 $intersection = array_intersect_assoc($arr1,$arr2); $depth = 0; for($i=0,$len=count($intersection); $i<$len; $i++){ if(!isset($intersection[$i])){ $depth = $i; break; } } // 将path2的/ 转为 ../,path1获取后面的部门,然后合拼 $tmp = array_merge(array_fill(0,count($arr2)-$depth-1,'..'),array_slice($arr1,$depth)); $relativePath = implode('/',$tmp); return $relativePath; } ?> demoPHP实战 <必修php $path1 = '/home/web/lib/img/cache.php'; $path2 = '/home/web/api/img/show.php'; echo getRelativePath($path1,$path2); // ../../lib/img/cache.php 必修> 《PHP文件操作之获取目录下文件与计算相对路径的方法》是否对您有启发,欢迎查看更多与《PHP文件操作之获取目录下文件与计算相对路径的方法》相关教程,学精学透。编程之家 52php.cn为您提供精彩教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |