Home > php教程 > php手册 > PHP面试题集,php试题

PHP面试题集,php试题

WBOY
Release: 2016-06-13 09:23:41
Original
1224 people have browsed it

PHP面试题集,php试题

汗~~做了一下网络上的php题目,不知不觉做到现在.....把答案贴出来
如果有问题请欢迎补充和指正

 

 1、用PHP打印出前一天的时间格式是2006-5-10 22:21:21(2分)   $a = date("Y-m-d H:i:s", strtotime("-1 day")); print_r($a);

 

    2、echo(),print(),print_r()的区别(3分)   echo 和print不是一个函数,是一个语言结构 int print(string $arg), 只有一个参数 echo arg1,arg2; 可以输出多个参数,返回void echo和print只能打印出string,不能打印出结构 print_r能打印出结构 比如  $arr = array("key"=>"value"); print_r($arr);

 

    3、能够使HTML和PHP分离开使用的模板(1分) smarty,phplib

 

    4、使用哪些工具进行版本控制?(1分) svn,git,cvs

 

    5、如何实现字符串翻转?(3分) 英文: strrev($a)   中文或其他文字:   中文:GB2312, 代码是使用GB2312编码 len=mbstrwidth(str,"GB2312"); for(i=0;ilen;i++) { arr[]=mbsubstr(str, $i, 1, "GB2312"); } return implode("", array_reverse($arr)); } print_r(reverse("你好"));

 

    ---------------------------------------------------------------     6、优化MYSQL数据库的方法。(4分,多写多得)   语句方面: 1 使用索引,增加查询效率 2 优化查询语句,提高索引命中率   数据库涉及方面: 1 构造分库分表,提高数据库的存储和扩展能力 2 根据需要使用不同的存储引擎

 

    7、PHP的意思(送1分)   超级文本预处理语言 Hypertext PreProcessor

 

    8、MYSQL取得当前时间的函数是?,格式化日期的函数是(2分) CURRENT_TIMESTAMP() DATE_FORMAT() select DATE_FORMAT("2011-11-21 10:10:10", "%Y-%m-%d");

 

      9、实现中文字串截取无乱码的方法。(3分) mb_substr($str, 1, 1, "GB2312");

 

    ---------------------------------------------------------------     10、您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?(1分) svn git

 

    11、您是否用过模板引擎? 如果有您用的模板引擎的名字是?(1分) smarty

 

    12、请简单阐述您最得意的开发之作(4分) XXX

 

    13、对于大流量的网站,您采用什么样的方法来解决访问量问题?(4分) 1 有效使用缓存,增加缓存命中率 2 使用负载均衡 3 对静态文件使用CDN进行存储和加速 4 想法减少数据库的使用 5 查看出现统计的瓶颈在哪里

 

    -----------------------------------------------------------------     14、用PHP写出显示客户端IP与服务器IP的代码1分) $_SERVER["REMOTE_ADDR"] $_SERVER["SERVER_ADDR"]

 

    15、语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们? (2分) 在失败的时候: include产生一个warning,而require产生直接产生错误中断   require在运行前载入 include在运行时载入   require_once include_once

 

    16、如何修改SESSION的生存时间(1分). session_set_cookie_params 

 

      17、有一个网页地址, 比如PHP研究室主页: http://www.phpv.net/index.html,如何得到它的内容?($1分) file_get_contents   curl 

 

    18、在HTTP 1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(?);(2分) 未授权   header("HTTP/1.0 404 Not Found");   fast CGI中: header("Status: 404 Not Found");

 

      19、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须?(1分) 成对出现 $a =       20、谈谈asp,php,jsp的优缺点(1分) asp是需要依赖IIS,是微软开发的语言 php和jsp可以依赖apache或者 nginx等其他服务器

 

    21、谈谈对mvc的认识(1分) model : 数据结构层 view :展现 control : 接收和判断处理输入

 

      -------------------------------------------------------------------     22、写出发贴数最多的十个人名字的SQL,利用下表:members(id,username,posts,pass,email)(2分) select top 10 id,username from members order by posts desc

 

    23. 请说明php中传值与传引用的区别。什么时候传值什么时候传引用?(2分) &表示传引用 函数中参数传引用会将参数进行改变 一般在输出参数有多个的时候可以考虑使用引用

 

    24. 在PHP中error_reporting这个函数有什么作用? (1分) 设定error的展示级别

 

    25. 请写一个函数验证电子邮件的格式是否正确 (2分) $str = "jianfeng@126.com"; regex="([az09\.]+)@([\daz\.]+)\.([az\.]2,6)" ; //正则 return preg_match(regex,str)

 

      26. 简述如何得到当前执行脚本路径,包括所得到参数。(2分) $argc --获取参数数量 $argv --获取参数列表

 

    27.如何修改SESSION的生存时间. (1分) session_set_cookie_params

 

  --------------------------------------------------------------------     28、JS表单弹出对话框函数是?获得输入焦点函数是? (2分) alert() confirm() promopt()   focus()

 

    29、JS的转向函数是?怎么引入一个外部JS文件?(2分) window.location.href="#"  

 

    30、foo()和@foo()之间有什么区别?(1分) @代表所有warning忽略

 

    31、如何声明一个名为”myclass”的没有方法和属性的类? (1分) class myclass { }

 

    32、如何实例化一个名为”myclass”的对象?(1分) $myclass = new myclass();

 

    33、你如何访问和设置一个类的属性? (2分) n=a->name; print_r($n);

 

    34、mysql_fetch_row() 和mysql_fetch_array之间有什么区别? (1分) mysql_fetch_array() 是 mysql_fetch_row() 的扩展版本。除了将数据以数字索引方式储存在数组中之外,还可以将数据作为关联索引储存,用字段名作为键名。    row=mysqlfetcharray(result, MYSQL_ASSOC)) {         printf ("ID: %s  Name: %s", row["id"],row["name"]);     }       mysql_free_result($result);

 

    --------------------------------------------------------------------     35、GD库是做什么用的? (1分) 动态的开放的图片处理库

 

    36、指出一些在PHP输入一段HTML代码的办法。(1分) echo "{html}" echo       37、下面哪个函数可以打开一个文件,以对文件进行读和写操作?(1分) c   (a) fget() (b) file_open() (c) fopen() (d) open_file()

 

    38、下面哪个选项没有将 john 添加到users 数组中? (1分) b   (a) $users[] = ‘john’;   (b) array_add($users,’john’);   (c) array_push($users,‘john’);   (d) $users ||= ‘john’;

 

    39、下面的程序会输入是否?(1分) 10   $num = 10;   function multiply(){   num=num * 10;   }   multiply();   echo $num;   ?>

 

    40、使用php写一段简单查询,查出所有姓名为“张三”的内容并打印出来 (2分)   表名 UserName Tel Content Date      张三 13333663366 大专毕业 2006-10-11      张三 13612312331 本科毕业 2006-10-15      张四 021-55665566 中专毕业 2006-10-15   请根据上面的题目完成代码:   $mysql_db=mysql_connect("local","root","pass");   @mysql_select_db("DB",$mysql_db); $sql = sprintf("select * from %s where UserName = '%s'",  "表名",  "张三"); values=mysqlquery(sql); while(item=mysqlfetchqueryarray(values)) { echo sprintf("用户名:%s, 电话 %s, 学历: %s, 毕业日期: %s",  item[UserName],item['Tel'], item[Content],item['Date'] ); }

 

    41、如何使用下面的类,并解释下面什么意思?(3)   class test{   function Get_test($num){   num=md5(md5(num)."En");   return $num;   }   } $test = new test(); ret=test->Get_test(11); print_r($ret);exit;   将num进行MD5编码之后生成的32位字符串a1和"En"联系起来之后再进行一次MD5编码

 

  ----------------------------------------------------------------------------     42、写出 SQL语句的格式 : 插入 ,更新 ,删除 (4分)   表名 UserName Tel Content Date      张三 13333663366 大专毕业 2006-10-11      张三 13612312331 本科毕业 2006-10-15      张四 021-55665566 中专毕业 2006-10-15   (a) 有一新记录(小王 13254748547 高中毕业 2007-05-06)请用SQL语句新增至表中 insert into 表名 values('小王', '13254748547', '高中毕业', '2007-05-06')     (b) 请用sql语句把张三的时间更新成为当前系统时间 update 表名 set Date = GETDATE() where UserName = "张三"     (c) 请写出删除名为张四的全部记录 delete from 表明 where UserName = "张四"

 

    43、请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别(2分) int 整型 char 存储定长 varchar 存储变长 datetime 时间 text 存储变长的   varchar是变长 char(20) 定长

 

    44、MySQ自增类型(通常为表ID字段)必需将其设为(?)字段(1分) auto_increment     45、写出以下程序的输出结果 (1分)   $b=201;   $c=40;   a=b>$c?4:5;   echo $a;   ?>   4

 

    46、检测一个变量是否有设置的函数是否?是否为空的函数是?(2分) isset() empty()

 

    -----------------------------------------------------------------------------     47、取得查询结果集总数的函数是?(1分) mysql_num_rows()

 

    48、$arr = array('james', 'tom', 'symfony'); 请打印出第一个元素的值 (1分) print_r($arr[0]);   reset($arr); print_r(current($arr));   print_r(array_shift($arr));

 

    49、请将41题的数组的值用','号分隔并合并成字串输出(1分) implode

 

    50、a=abcdef;a的值并打印出第一个字母(1分) $a[0];   substr($a, 0, 1);

 

    51、PHP可以和sql server/oracle等数据库连接吗?(1分) 可以 有现成的库

 

    52、请写出PHP5权限控制修饰符(3分) public private  protected

 

    53、请写出php5的构造函数和析构函数(2分) public function __construct() { }   public function __destruct() { }

 

    编程题        1. 写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名   例如: http://www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php   arr=parseurl(url); pathArr=pathinfo(arr['path']); print_r($pathArr['extension']);

 

    3. 写一个函数,算出两个文件的相对路径   如 $a = '/a/b/c/d/e.php';   $b = '/a/b/12/34/c.php';   计算出 ba 的相对路径应该是 http://www.cnblogs.com/12/34/c.php将添上

 

  path,conpath) { pathArr=explode("/",path); conpathArr=explode("/",conpath); $dismatchlen = 0; for(i=0;i pathArr);i++) { if(conpathArr[i] != pathArr[i]) { dismatchlen=count(pathArr) - $i; arrLeft=arrayslice(pathArr, $i); break; } } ret=strrepeat("../",dismatchlen).implode("/", $arrLeft); return $ret; }   print_r(sGetRelativePath(b,a));

 

      3.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。

 

handle=opendir(folder); while((file=readdir(handle)) !== false) { //如果是.或者..则跳过 if(file=="."||file == "..") { continue; } if(is_file(folder."/".file)) { aFileArr[]=file;  } else if(is_dir(folder."/".file)) { aFileArr[file] = aGetAllFile(folder."/".file); } } closedir($handle); } return $aFileArr; }   $path = "/home/test/sql"; print_r(aGetAllFile($path));

PHP程序员上机面试题(并附答案,回答好的加分)

某大公司的PHP面试题

管理提醒: 本帖被 haowubai 执行取消置顶操作(2009-07-30)
1. 如何用php的环境变量得到一个网页地址的内容?ip地址又要怎样得到?
[php]
echo $_SERVER ['PHP_SELF'];
echo $_SERVER ['SERVER_ADDR'];
[/php]

2. 求两个日期的差数,例如2007-2-5 ~ 2007-3-6 的日期差数
[php]
$begin=strtotime('2007-2-5');
$end=strtotime('2007-3-6');
echo ($end-$begin)/(24*3600);
[/php]

3. 请写一个函数,实现以下功能:
字符串“open_door” 转换成 “OpenDoor”、”make_by_id” 转换成 ”MakeById”。
[php]
function changeStyle(& $str) {

/*$str = str_replace ( "_", " ", $str );
$str = ucwords ( $str );
$str = str_replace ( " ", "", $str );
return $str;*/

$arrStr=explode('_',$str);
foreach($arrStr as $key=>$value){
$arrStr[$key]=strtoupper(substr($value,0,1)).substr($value,1);
}
return implode('',$arrStr);
}
$s = "open_door";
echo changeStyle ( $s );
[/php]

4. 要求写一段程序,实现以下数组$arr1转换成数组$arr2:
[php]$arr1 = array (
'0' => array ('fid' => 1, 'tid' => 1, 'name' =>'Name1' ),
'1' => array ('fid' => 1, 'tid' => 2 , 'name' =>'Name2' ),
'2' => array ('fid' => 1, 'tid' => 5 , 'name' =>'Name3' ),
'3' => array ('fid' => 1, 'tid' => 7 , 'name' =>'Name4' ),
'4' => array ('fid' => 3, 'tid' => 9, 'name' =>'Name5' )
);
$arr2 = array......余下全文>>
 

PHP面试题?急忙

求职的朋友可以看看,不过也不要想着这些就一定有用,有时候工作中的经验也是非常重要的。不过,基本知识点还是非常重要的。至于高阶中的算法问题,如果你不是做特别重要的任务,这些算法你是碰不到的(做网游的除外);高阶中的像册处理,如果你真能处理好了,你单独做一个产品出售也不成问题啊。

1. 基本知识点
HTTP协议中几个状态码的含义:503 500 401 200 301 302
Include require include_once require_once 的区别.
PHP/Mysql中几个版本的进化史,比如mysql4.0到4.1,PHP 4.x到5.1的重大改进等等。
HEREDOC介绍
写出一些php魔幻方法;
一些编译php时的configure 参数
向php传入参数的两种方法。
(mysql)请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别;
error_reporting 等调试函数使用
您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?
posix和perl标准的正则表达式区别;
Safe_mode 打开后哪些地方受限.
写代码来解决多进程/线程同时读写一个文件的问题。
写一段上传文件的代码。
Mysql 的存储引擎,myisam和innodb的区别。

2. web 架构,安全,项目经验
介绍xdebug,apc,eAccelerator,Xcache,Zend opt的使用经验。
使用mod_rewrite,在服务器上没有/archivers/567.html这个物理文件时,重定向到index.php?id=567 ,请先打开mod_rewrite.
MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?
写出一种排序算法(原理),并说出优化它的方法。
请简单阐述您最得意的开发之作
对于大流量的网站,您采用什么样的方法来解决各页面访问量统计问题
您是否用过模板引擎? 如果有您用的模板引擎的名字是?
请介绍Session的原理,大型网站中Session方面应注意什么?
测试php性能和mysql数据库性能的工具,和找出瓶颈的方法。
正则提出一个网页中的所有链接.
介绍一下常见的SSO(单点登陆)方案(比如dedecms整合discuz的passport)的原理。
您写过的PHP框架的特点,主要解决什么问题,与其他框架的不同点。
大型的论坛/新闻文章系统/SNS网站在性能优化上有什么区别?
相册类应用:要求在浏览器中能同时选中并上传多个文件,图片要求能剪裁,压缩包在服务器端解压。能上传单个达50M的文件。上传过程中有进度条显示。每个图片能生成四种大小缩略图,视频文件要转成flv供flash播放。叙述要涉及的各类开源软件和简单用途。
一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…, 如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号。用程序模拟该过程。

3. unix/linux 基本使用
linux下查看当前系统负载信息的一些方法。
vim的基本快捷键。
ssh 安全增强方法;密码方式和rsa key 方式的配置。
rpm/apt&......余下全文>>
 

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template