PHP程序员面试时应面试时要注意哪些问题细节

正文 php程序员面试题(经典汇总)
php程序员面试题(经典汇总)
发布时间: & 编辑:www.jquerycn.cn
本文介绍下,一份php程序员面试题,据说是比较经典的,有需要的朋友,请不要错过这篇文章,说不定可以让你在php面试中一展身手,顺利过关哦。
function GBsubstr($string, $start, $length) {
&&& if(strlen($string)&$length){
&&&& $str=
&&&& $len=$start+$
&&&& for($i=$$i&$$i++){
&&& if(ord(substr($string,$i,1))&0xa0){
&&&& $str.=substr($string,$i,2);
&&&& $i++;
&&& }else{
&&&& $str.=substr($string,$i,1);
&& return $str.'...';
&&& }else{
&& return $
2.用PHP写出显示客户端IP与服务器IP的代码?
打印客户端IP:echo $_SERVER[&REMOTE_ADDR&]; 或者: getenv('REMOTE_ADDR');
&& 打印服务器IP:echo gethostbyname(&www.jbxue.com&);
3、如何修改SESSION的生存时间?
方法1:将php.ini中的session.gc_maxlifetime设置为9999重启apache
&& 方法2:$savePath = &./session_save_dir/&;
&&&&&&&& $lifeTime = 小时 * 秒;
&&&&&&&& session_save_path($savePath);
&&&&&&&& session_set_cookie_params($lifeTime);
&&&&&&&& session_start();
&& 方法3:setcookie() and session_set_cookie_params($lifeTime);
4、有一个网页地址, 比如脚本学堂主页: http://www.jbxue.com/index.html,如何得到它的内容?
答:方法1(对于PHP5及更高版本):
复制代码 代码示例:
& $readcontents = fopen(&http://www.jbxue.com/index.html&, &rb&);
&& $contents = stream_get_contents($readcontents);
&& fclose($readcontents);
echo file_get_contents(&http://www.jbxue.com/index.html&);
5、在HTTP 1.0中,状态码401的含义是(?);如果返回&找不到文件&的提示,则可用 header 函数,其语句为(?);?
答:状态401代表未被授权,header(&Location:www.xxx.php&);
6.谈谈对mvc的认识?
答:由模型(model),视图(view),控制器(controller)完成的应用程序
&& 由模型发出要实现的功能到控制器,控制器接收组织功能传递给视图;
7. 请说明php中传值与传引用的区别。什么时候传值什么时候传引用?
答:按值传递:函数范围内对值的任何改变在函数外部都会被忽略
&& 按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改
&& 优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。
&& 按引用传递则不需要复制值,对于性能提高很有好处。
8.在PHP中error_reporting这个函数有什么作用?
答:设置错误级别与错误信息回报
9. 请写一个函数验证电子邮件的格式是否正确?
function checkEmail($email)
&&& $pregEmail = &/([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?/i&;
&&& return preg_match($pregEmail,$email);
10、JS表单弹出对话框函数是?获得输入焦点函数是?
答:弹出对话框: alert(),prompt(),confirm()
&& 获得输入焦点 focus();
11、JS的转向函数是?怎么引入一个外部JS文件?
window.location.href,&script type=&text/javascript& src=&js/js_function.js&&&/script&
12、mysql_fetch_row() 和mysql_fetch_array之间有什么区别?
答:mysql_fetch_row是从结果集取出1行数组,作为枚举
&& mysql_fetch_array是从结果集取出一行数组作为关联数组,或数字数组,两者兼得;
13、mysql_fetch_row() 和mysql_fetch_array之间有什么区别?
答:mysql_fetch_row是从结果集取出1行数组,作为枚举
&& mysql_fetch_array是从结果集取出一行数组作为关联数组,或数字数组,两者兼得;
14、请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别?
答:int是数字类型,char固定长度字符串,varchar实际长度字符串,datetime日期时间型,text文本字符串
&&& char的场地固定为创建表设置的长度,varchar为可变长度的字符
15、取得查询结果集总数的函数是?
答:mysql_num_rows($result);
17、请写出php5的构造函数和析构函数?
答:__construct , __destruct
18. 写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名?
&& 例如: http://www.jbxue.com/abc/de/fg.php?id=1 需要取出 php 或 .php
复制代码 代码示例:
function getExt($url){
&& $arr = parse_url($url);
&& $file = basename($arr['path']);
&& $ext = explode(&.&,$file);
&& return $ext[1];
复制代码 代码示例:
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);
19. 写一个函数,算出两个文件的相对路径?
  如 $a = '/a/b/c/d/e.php';
  $b = '/a/b/12/34/c.php';
  计算出 $b 相对于 $a 的相对路径应该是 http://www.jbxue.com/c/d将()添上
复制代码 代码示例:
function getRelativePath($a, $b) {&
&&& $returnPath = array(dirname($b));&
&&& $arrA = explode('/', $a);&
&&& $arrB = explode('/', $returnPath[0]);&
&&& for ($n = 1, $len = count($arrB); $n & $ $n++) {&
&&&&&&& if ($arrA[$n] != $arrB[$n]) {&
&&&&&&&&&&&&
&&&&&&& }&&
&&& 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);
&& 希望以上为大家提供的php面试题,对大家有所帮助,真诚期待在您的应聘中可以用得上。您可能感兴趣的文章:入门级PHP程序员面试题-面试问题-论文联盟
您好,游客
背景颜色:
入门级PHP程序员面试题
欢迎浏览更多 →
相关文章 & & &
本栏目最新更新文章
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款
内容分类导航php程序员面试经历_有一个地方只有他们知道_新浪博客
php程序员面试经历
前天,发了几份简历,第二天,接通知电话,一共四家,选择了三家去面试;呵呵,还挺有意思的,一家一家说吧!
本人面试工作职务“”;
第一家:是搞网络商城的,面试的考官是一位前辈级的,应该是这个样子的,我们谈的很开心,在愉快的心情进行了此次谈话,进入了一间办公室,前辈问了一些基础问题,比如“AJAX、、PHP、MYSQL”等;我也对答如流,有一说一,有二说二,滔滔不绝,连绵不断地说着,谈话大约进行了20分钟,其中问两个问题我记忆深刻:
一、rnclude跟require的区别:这下给我问晕了,我只知道这两个都是引用文件,以前看书的时候,没有特意的要去记忆这东西,后来我笑了笑,“我忘记了,只知道都是引用文件,理论跟实践,我更着重于实践”;回来后马上看书明白了:
require();include();require_once();include_这四个引用语句直接引用已经存在的文件到程序中;
require()语句在执行前就会将使用require引用的文件读入,因此require通常放到程序的开始处。因此要特别注意一点;
require()和include()的语法是一样。但是他们的功能却些许出入。include语句只有在被执行时才会读入要包含的文件。在错误处理方便,使用include语句,如果发生包含错误,程序将跳过include语句,虽然会显示错误信息但是程序还是会继续执行;
它可以说是require的扩展吧,功能和用法相似,但是不同之处是require_once语句有一个引用链,它可以保证文件加入你的程序仅仅只有一次,而且会避开变量值和函数名之间的冲突;
require_once语句一样,include_once语句把include的功能扩展了。在程序执行期间,将指定的文件包含进来,如果从文件引用进来的程序先前已经包含过的时候,include_once()就不会把它再包含进来。也就是仅仅可以引用同一个文件一次;
二、ADO与ADODB要是不知道这个是什么意思的同志可要看看书了,其实我常的的数据函数就是ADODB及ADO等,但是就是不知道这个概念,简单的道理用例子说明“就像到过一餐厅吃饭,吃过饭却不知道餐厅名称”;不知道比喻的恰当不,请多见谅;
ADO(ACTIVEX DATA OBJECTS)应用层的数据访问接口
ODBC 数据库驱动接口
OLE DB 系统级数据访问接口
DAO (DATA ACCESS OBJECTS) 对象的数据访问接口
ADO是基于全新的OLE
DB技术而设计的.是一种基于应用程序层的数据访问接口.它是DAO/RDO的后继产物.
DAO是VB最先采用的面向对象的数据访问接口,通过DAO访问MICROSOFT JET数据库引擎.
ADODC是封装ADO的VB数据控件,可减少代码编写.
ADODB是数据对象,操作数据库需通过编写代码 来实现.
以上简单说明仅供参考.
总结:第二天来电话,说让去上班;终上所述,理论这东西对于技术工作者来着还是很重要,尤其是在面试过程中很重要;不过本人面试还是通过了,让初八上班;待遇:(0000元,三险一金,饭补,10点上班6点下班,六日休息;)感觉有点低,不过人家说了人提升的空间;考虑中
第二家:是一家搞艺术网络的,感觉就是不一样,文化气氛浓厚,言谈举止、礼仪方面给人的感觉非常好;去了就是做卷子:
基础部分:
html与xhtml的区别;
什么是CSS;
什么是AJAX;
什么是web2.0;
网页元素排序:视觉效果、网页速度、颜色搭配、用户界面、交互界面、
PHP与ASP,JSP,PERL,区别
LINUX与APACHE;
MYSQL部分:
连接数据库,建一表,写一字段,查询字段;
最后是数据安全方面,加密等;
大概就记得这么多了,本人呢理论记得很少,就大概写了一下,没想到居然写了一页纸,都不敢相信自己,不怎么写字的人,居然写了一页,字写得难看点,不过还好能看懂,感觉非常艺术的老总面试我,简单问了一下,就冲着WEB2.0问,我就那题写得不是很好,我写的是网页服务器,最后老总又叫来了一个程序员,是个小伙子,比我大点,年轻人沟通就是好些,简单聊了聊,让我做个东西,晕,在那种环境下那写得出来东西啊,思绪紧张万份;
最后决定让我回家做,做好给传过去,我花了N小时,写完了,一个上传图片的简单模块。等待通知中。。。。。。
总结:理论真的很重要;
第三家:就不用细说了,就是面试一次与程序员聊了聊,当时就说让去上班,细想了一下,工作地点太远了,不是很方便,放弃;
什么叫经验,这就是经验,凡事都有第一次,有一次就有二次,找工作不是想像中那么难,胆量加实践,放心地去,结果无非是两种“失败与成功”,两种结果都是好结果,成功则喜,不成功也是喜,人生的大道上,又填上一笔记忆的颜色;失败乃成功之母,哈哈,不失败那会有成功;多闯多磨。
推荐名言“故天将降大任于斯人也,必先若其心志,劳其筋骨,饿其体肤,空乏其身”;
博客等级:
博客积分:0
博客访问:238
关注人气:0
荣誉徽章:一位资深php程序员在北京的面试30个题目
1、SESSION 保存在服务器的哪里?2、服务端是如何获取客户端的cookie?3、如何实现SESSION共享,共享的原理是什么?4、请大致说出LVS搭建的过程,文件共享原理是什么?5、网络共享服务器上传数据是向一台服务器上传?还是多台?如何实现同步?6、说出你所知道的数据库设计范式?常用的建模工具是什么?(mysql建模工具)7、如果你是项目经理,你如何管理你的项目团队的日常事宜?8、主从数据库的配置,都需要哪些基本的条件,需要配置什么内容?9、说出你常用的版本控制器,SVN中需要配置哪几个配置文件10、LVS 在项目运行之前需要注意哪些事项,或者说会出现什么问题?11、ecshop为何出现字段冗余违犯设计模式,请说出为何这么做?12、常用mysql优化方式,尽可能多的说?13、memcache原理是什么?是否能存入2M的value?14、什么是队列?排它锁,Myisam 死锁如何解决?15、请说出mysql常用存储引擎?memory存储引擎的特点?16、如何最快速的插入5000条以上的数据?17、你用过多少开源框架?18、ecshop 购物车信息存放在哪里?19、PHP生成页面缓存的原理20、你所知道的缓存技术有哪些,分别做下简单介绍------------------------------------------------------------------------------------------------1、SESSION 保存在服务器的哪里?答:通过php.ini指定,可存在指定目录的文件中或内存中,或数据库中!2、服务端是如何获取客户端的cookie?答:服务器每次处理请求的进候都可以抓取头信息的cookie并设置返回,3、如何实现SESSION共享,共享的原理是什么?答:配置主从数据库,将SESSION存入主数据库中,常见的做法还有在各服务器端安装MEMCAHCE,将SESSION存入各MEMCACHE中,4、请大致说出LVS搭建的过程,文件共享原理是什么?5、网络共享服务器上传数据是向一台服务器上传?还是多台?如何实现同步?6、说出你所知道的数据库设计范式?常用的建模工具是什么?(mysql建模工具)答:1NF:每一条满足原子性,不可以分割;2NF:每一条记录要满足唯一性,3NF:字段不冗余,有时我们还需要反三范式,常用的建模工具:phpMyAdmin,navicat for mysql,DOS命令行;7、如果你是项目经理,你如何管理你的项目团队的日常事宜?8、主从数据库的配置,都需要哪些基本的条件,需要配置什么内容?答:基本条件:二台以上数据库服务器,配置流程:1.分别打开主从服务器的bin-从服务器+relaylog2.在主服务器根据需求建立相应的帐号并授权;3.从服务器使用己创建好的帐号连接主服务器读取二进制文件并分析后同步配置项:主:log-bin=mysql-server-id=num(int);binlog-format=mixd/statement/row/从:log_bin=mysql-server-id=num(int)//唯一;relay_log=mysql-relay-log_slave_updates=1;relay_only=1;9、说出你常用的版本控制器,SVN中需要配置哪几个配置文件答:SVN,GIT,CVS;配置文件:mod_authz_svn.so mod_dav_svn.so移至服务器模块中并加载,配置权限,分配用户;10、LVS 在项目运行之前需要注意哪些事项,或者说会出现什么问题?11、ecshop为何出现字段冗余违犯设计模式,请说出为何这么做?答:在某些环境下反三范式反而增加了效率,因此这么做!12、常用mysql优化方式,尽可能多的说?答:SQL语句优化;存储优化;数据库配置;服务器配置13、memcache原理是什么?是否能存入2M的value?答:采用C/S模式,协义是普通文本,基于libevent机制处理数据放在内存中;memcache最大只能存入1MB数据,memcache并非为存储大数据而生,但可以考虑在存储前将值先压缩或拆分成多值分配到多个key中!14、什么是队列?排它锁,Myisam 死锁如何解决?答:在默认情况下MYisam是表级锁,所以同时操作单张表的多个动作只能以队列的方式进行;排它锁又名写锁,在SQL执行过程中为排除其它请求而写锁,在执行完毕后会自动释放;死锁解决:先找到死锁的线程号,然后杀掉线程ID& &&& &15、请说出mysql常用存储引擎?memory存储引擎的特点?答:Myisam、InnoDB、memory,memory的特点是将表存到内存中,数度快,重启后数据丢失!16、如何最快速的插入5000条以上的数据?答:先生成数据文件,在用sql语句导入17、你用过多少开源框架?答:TP/CI/ZF/YII18、ecshop 购物车信息存放在哪里?答:order_order_order_19、PHP生成页面缓存的原理答:将缓存内容放入OB缓存中,在OB缓存结束或脚本执行完毕后放入到程序缓存未尾并返回!20、你所知道的缓存技术有哪些,分别做下简单介绍答:ob缓存,通过模板技术写入文件类缓存;redis;redis和memcache最显著的区别在于数据不仅并于内存中,同时还会在磁盘中生成文件,即使重启,数据亦可被加载;21、HTTP 协议的原理,什么是全双工,什么是半双工?答:HTTP协议是一种无状态的协义,直白的讲就是请求和响应,全双工是指请求和响应同时进行,半双工指单个执行;22、ucenter通信原理?答:就是某个应用登陆后,然后后台轮询发送给同步登陆的应用的回调文件 ,回调文件接收到用户ID之后,生成cookie或者session然后进入登陆模式。23、Memcached的原理答:memcached 是以守护程序方式运行于一个或多个服务器中,等待接收客户端的连接操作,客户端可以由各种语言编写(例如PHP)。PHP 等客户端在与 memcached 服务建立连接之后,接下来的事情就是存取对象了,每个被存取的对象都有一个唯一的标识符 key,存取操作均通过这个 key 进行,保存到 memcached 中的对象实际上是放置内存中的,并不是保存在 cache 文件中的,这也是为什么 memcached 能够如此高效快速的原因。24、你用过多少种JS框架?举例说明优缺点答:jQuery、prototype、dojo、ext、YUI;jQuery:强大的DOM节点查询无人能出其左右,动画操方便; DOM封装的很好!高低版本兼容非常好prototype:较早的jS库,对ajax支持较好,基于原型链面向对象很强大dojo:更容易俣WEB页面具有动态能力;ext:强大的UI操作高居榜首;YUI:强大的类库,提供很多方法;25、如何衡量AJAX的使用(何时使用AJAX)答:AJAX既称无刷新技术,常用见的使用场景:表单验证,用户评分、点击;只要需要实时的与服务器交互时即可使用;26、什么是推技术,实现原理是什么?答:推技术又称COMET,即在客户请求时在服务器挂起长连接,一旦服务器有了新数据,它降立即反回给客户端,实时性好;27、什么是垂直搜索,斯芬克斯中分词原理?答:垂直搜索是指在特定的范围内搜索的上下文,搜索面只会越来越精细,而非越来越广泛;sphinx分词的原理:将文本拆分为多个单词从数据源的各个文档对像创建索引并将索引表存储于内存中!28、sphinx中无法ha_sphinx.so是用来做什么的?答:一个sphinx的存储模块;29、PHP常用的合并数组的方式?答:array_array_mergn_30、回答PHP读取文件速度快,还是读取mysql的数据快?为何?答:一般情况下读文件》读数据库;不同情况速度也会反向,如:数据库数据量很小,而同目录文件又非常多的情况下,读数据库大于读文件;
您还可能喜欢
请先登陆后发表评论
syf_lingchen
图片数量: 张
说说数量: 条
文章数量: 篇
留言数量: 条
评论数量: 条
素材个数: 个
运行天数: 天
访问统计: 次
Back to Top
选择风格关闭
感谢您的支持,我会继续努力的!
1元=1金币,支付后关注公众号联系站长
感谢您的支持,我会继续努力的!
长按二维码打赏,你说多少就多少
使用第三方账号登录

我要回帖

更多关于 程序员面试时自我介绍 的文章

 

随机推荐