比较基础的php面试题及答案-编程题


Posted in 面试题 onOctober 14, 2012
编程题:
1. 写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名
例如: http://www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php
答案1:
function getExt($url){
$arr = parse_url($url);

$file = basename($arr[path]);
$ext = explode(“.”,$file);
return $ext[1];
}
答案2:
function getExt($url) {
$url = basename($url);
$pos1 = strpos($url,”.”);
$pos2 = strpos($url,”?”);
if(strstr($url,”?”)){
return substr($url,$pos1 + 1,$pos2 – $pos1 – 1);
} else {
return substr($url,$pos1);
}
}

2. 在 HTML 语言中,页面头部的 meta 标记可以用来输出文件的编码格式,以下是一个标准的 meta 语句
请使用 PHP 语言写一个函数,把一个标准 HTML 页面中的类似 meta 标记中的 charset 部分值改为 big5
请注意:
1. 需要处理完整的 html 页面,即不光此 meta 语句
2. 忽略大小写
3. ‘ 和 ” 在此处是可以互换的
4. ‘Content-Type’ 两侧的引号是可以忽略的,但 ‘text/html; charset=gbk’ 两侧的不行
5. 注意处理多余空格

3. 写一个函数,算出两个文件的相对路径
如 $a = ‘/a/b/c/d/e.php’;
$b = ‘/a/b/12/34/c.php’;
计算出 $b 相对于 $a 的相对路径应该是 ../../c/d将()添上
答:function getRelativePath($a, $b) {
$returnPath = array(dirname($b));
$arrA = explode(‘/’, $a);
$arrB = explode(‘/’, $returnPath[0]);
for ($n = 1, $len = count($arrB); $n if ($arrA[$n] != $arrB[$n]) {
break;
}
}
if ($len – $n > 0) {
$returnPath = array_merge($returnPath, array_fill(1, $len – $n, ‘..’));
}

$returnPath = array_merge($returnPath, array_slice($arrA, $n));
return implode(‘/’, $returnPath);
}
echo getRelativePath($a, $b);

Tags in this post...

面试题 相关文章推荐
Ibatis如何调用存储过程
May 15 面试题
struct与class的区别
Feb 03 面试题
链表面试题-一个链表的结点结构
May 04 面试题
DBA的职责都有哪些
May 16 面试题
杭州联环马网络笔试题面试题
Aug 04 面试题
Ref与out有什么不同
Nov 24 面试题
Internal修饰符有什么含义
Jul 10 面试题
什么是静态路由?什么是动态路由?各自的特点是什么?
Sep 16 面试题
软件测试工程师笔试题带答案
Mar 27 面试题
软件测试有哪些?什么是配置项?
Feb 12 面试题
对象的序列化(serialization)类是面向流的,应如何将对象写入到随机存取文件中
Jun 22 面试题
J2EE中的容器都包括哪些
Aug 21 面试题
PHP中如何创建和修改数组
May 02 #面试题
PHP面试题集
Dec 18 #面试题
一些PHP的面试题
May 06 #面试题
几道PHP面试题
Apr 14 #面试题
PHP如何防止SQL注入
May 03 #面试题
几道PHP的面试题
May 19 #面试题
PHP解析URL是哪个函数?怎么用?
May 09 #面试题
You might like
PHP编写daemon process 实例详解
2016/11/13 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
2016/12/15 PHP
浅谈php常用的7大框架的优缺点
2020/07/20 PHP
日期处理的js库(迷你版)--自建js库总结
2011/11/21 Javascript
js关闭当前页面(窗口)的几种方式总结
2013/03/05 Javascript
AngularJS初始化过程分析(引导程序)
2014/12/06 Javascript
使用纯javascript实现放大镜效果
2015/03/18 Javascript
js实现表单Radio切换效果的方法
2015/08/17 Javascript
简要了解jQuery移动web开发的响应式布局设计
2015/12/04 Javascript
深入理解javascript作用域第二篇之词法作用域和动态作用域
2016/07/24 Javascript
BootStrap表单时间选择器详解
2017/05/09 Javascript
Angular 4依赖注入学习教程之ClassProvider的使用(三)
2017/06/04 Javascript
js操作table中tr的顺序实现上移下移一行的效果
2018/11/22 Javascript
前端插件之Bootstrap Dual Listbox使用教程
2019/07/23 Javascript
使用Vue.js中的过滤器实现幂方求值的方法
2019/08/27 Javascript
JS 图片压缩原理与实现方法详解
2020/04/29 Javascript
微信小程序实现打卡签到页面
2020/09/21 Javascript
[03:09]DOTA2亚洲邀请赛 LGD战队出场宣传片
2015/02/07 DOTA
[53:10]完美世界DOTA2联赛决赛日 FTD vs GXR 第二场 11.08
2020/11/11 DOTA
使用Python构建Hopfield网络的教程
2015/04/14 Python
以Flask为例讲解Python的框架的使用方法
2015/04/29 Python
Python调用命令行进度条的方法
2015/05/05 Python
详解Python 序列化Serialize 和 反序列化Deserialize
2017/08/20 Python
python实现随机梯度下降(SGD)
2020/03/24 Python
Mac下Anaconda的安装和使用教程
2018/11/29 Python
python线程定时器Timer实现原理解析
2019/11/30 Python
深入了解如何基于Python读写Kafka
2019/12/31 Python
python爬虫学习笔记之pyquery模块基本用法详解
2020/04/09 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
2021/01/15 Python
印度网上药店:1mg
2017/10/13 全球购物
什么是"引用"?申明和使用"引用"要注意哪些问题?
2016/03/03 面试题
建筑施工安全责任书
2014/07/24 职场文书
2014各大专业毕业生自我评价
2014/09/17 职场文书
拖欠货款起诉状
2015/05/20 职场文书
Redis主从配置和底层实现原理解析(实战记录)
2021/06/30 Redis
Windows下用Nginx配置https服务器及反向代理的问题
2021/09/25 Servers