2017年PHP面试编程题
PHP是属于后端的工程师,因此被问到编程问题是避免不了的,以下是百分网小编精心为大家整理的2017年PHP面试编程题,希望对大家有所帮助!更多内容请关注应届毕业生网!
1. 写一个函数,尽可能高效的`,从一个标准 url 里取出文件的扩展名
例如: http://www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php
$url = "http://www.sina.com.cn/abc/de/fg.php?id=1";
arr=parseurl(arr=parseurl(url);
pathArr=pathinfo(pathArr=pathinfo(arr['path']);
print_r($pathArr['extension']);
3. 写一个函数,算出两个文件的相对路径
如 $a = '/a/b/c/d/e.php';
$b = '/a/b/12/34/c.php';
计算出 b相对于b相对于a 的相对路径应该是 http://www.cnblogs.com/12/34/c.php将添上
$a = '/a/b/c/d/e.php';
$b = '/a/b/12/34/c.php';
//获取path相对于conpath的相对路径
function sGetRelativePath(path,path,conpath)
{
pathArr=explode("/",pathArr=explode("/",path);
conpathArr=explode("/",conpathArr=explode("/",conpath);
$dismatchlen = 0;
for(i=0;i=0;i < count(pathArr);pathArr);i++)
{
if(conpathArr[conpathArr[i] != pathArr[pathArr[i])
{
dismatchlen=count(dismatchlen=count(pathArr) - $i;
arrLeft=arrayslice(arrLeft=arrayslice(pathArr, $i);
break;
}
}
ret=strrepeat("../",ret=strrepeat("../",dismatchlen).implode("/", $arrLeft);
return $ret;
}
print_r(sGetRelativePath(b,b,a));
3.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。
function aGetAllFile($folder)
{
$aFileArr = array();
if(is_dir($folder))
{
handle=opendir(handle=opendir(folder);
while((file=readdir(file=readdir(handle)) !== false)
{
//如果是.或者..则跳过
if(file=="."||file=="."||file == "..")
{
continue;
}
if(is_file(folder."/".folder."/".file))
{
aFileArr[]=aFileArr[]=file;
}
else if(is_dir(folder."/".folder."/".file))
{
aFileArr[aFileArr[file] = aGetAllFile(folder."/".folder."/".file);
}
}
closedir($handle);
}
return $aFileArr;
}
$path = "/home/test/sql";
print_r(aGetAllFile($path));
【2017年PHP面试编程题】相关文章: