php字符串算法面试,PHP面试中常见的字符串与文件操作题目

由于最近考虑换工作,所以抽时间复习下面试中可能遇到的基本知识。下面是四道比较常见的题目,主要考察的是对字符串函数以及文件操作相关函数的掌握程度。

1、PHP翻转中文字符串function reverse($str){

$r = array();

for($i=0; $i

$r[] = mb_substr($str, $i, 1, 'UTF-8');

}

return implode(array_reverse($r));

}

echo reverse('www.phpha.com天涯PHP博客');

//结果:'客博PHP涯天moc.ahphp.wwww'

2、PHP计算URL的文件后缀名function getext($url){

$data = parse_url($url);

$path = $data['path'];

$info = pathinfo($path);

return $info['extension'];

}

echo getext('http://blog.phpha.com/archives/1670.html?id=1670');

//结果:'html'

3、PHP计算两个文件的相对路径function getrpath($path, $conpath){

$pathArr = explode('/', $path);

$conpathArr = explode('/', $conpath);

$dismatchlen = 0;

for($i=0; $i

if($conpathArr[$i] != $pathArr[$i]){

$dismatchlen = count($pathArr) - $i;

$arrleft = array_slice($pathArr, $i);

break;

}

}

return str_repeat('../', $dismatchlen).implode('/', $arrleft);

}

$a = '/a/b/c/d/e.php';

$b = '/a/b/12/34/5.php';

echo getrpath($a, $b);

//结果:'../../../c/d/e.php'

4、PHP遍历目录下的所有文件和文件夹function finddir($dir){

$files = array();

if(is_dir($dir)){

if($handle = opendir($dir)){

while(($file = readdir($handle)) !== false){

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

if(is_dir(rtrim($dir, '/').'/'.$file)){

$files[$file] = finddir(rtrim($dir, '/').'/'.$file);

}else{

$files[] = rtrim($dir, '/').'/'.$file;

}

}

}

closedir($handle);

}

}

return $files;

}

print_r(finddir('F:/Golang/src'));

//结果:

Array

(

[0] => F:/Golang/src/hello.go

[1] => F:/Golang/src/src.exe

[test] => Array

(

[0] => F:/Golang/src/test/sss.txt

)

)

除了这些字符串、文件操作的基本函数考察外,基础算法也是面试中考察比较多的,具体请看以前总结的关于PHP基础算法的文章。《常用算法PHP版-面试必备》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值