PHP面试题总结归纳(二)常会问到四道算法函数

一、写一个函数,尽可能高效的,从一个标准url里取出文件的扩展名(及文件后缀名)

例如:http://www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php  .php

function getExt($url){

$arr=parse_url($url);//parse_url:解析URL,并且以一个关联数组的形式返回URL的各个组成部分。无效字符用_来替换。

$file=basename($arr['path']);//basename():返回路径中的文件名信息。

$ext=explode(".",$file);//explode:分隔字符串到数组

return $ext[1];

}


二、写一个函数,算出两个文件的相对路径

例如:写一个函数,算出两个文件的相对路径,如 $a='/a/b/c/d/e.php';$b='/a/b/12/34/c.php';


function getpathinfo($path1, $path2) {
     $a2array    = explode('/', dirname($path1));//dirname()返回路径中的目录部分
     $b2array    = explode('/', dirname($path2));      
     $pathinfo   = '';  
     for( $i = 1; $i <= count($b2array)-1; $i++ ) {
         //如果两个路径长度不同下标
         if(!isset($a2array[$i])){
             $a2array[$i]='';
         }elseif(!isset($a2array[$i])){
 $b2array[$i]='';
         }
         $pathinfo.=$a2array[$i] == $b2array[$i] ? '../' : $b2array[$i].'/';
         
     }
     return $pathinfo;
 }


三、遍历文件夹及文件

function show($dirs){

$dir = opendir($dirs);

echo "<ul>";

while($f=readdir($dir)){

if($f!='.' && $f!='..'){

echo "<li>{$f}</li>";

if(is_dir("$dirs/{$f}")){

show("$dirs/{$f}");

}

}

}

echo "</ul>";

}

getFiles("C:\web\HTML5Upload");

//getFiles($_SERVER['DOCUMENT_ROOT']);

 


四、冒泡排序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值