当前位置:  编程技术>php
本页文章导读:
    ▪php程序员面试题(经典汇总)      php面试题全部内容如下。 1、实现中文字串截取无乱码的方法? 答: 代码示例: function GBsubstr($string, $start, $length) {     if(strlen($string)>$length){      $str=null;      $len=$start+$length;      fo.........
    ▪PHP程序员面试题(经典汇总,mysql为主)      以下是本节php面试题的全部内容。 1.表单中 get与post提交方法的区别? 答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息. 2.session与cookie的区别? 答.........
    ▪php程序员面试题(新浪篇)      新浪PHP工程笔试题 1. 写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名   例如: http://www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php 2. 在 HTML 语言中,页面头部的 meta 标记可.........

[1]php程序员面试题(经典汇总)
    来源: 互联网  发布时间: 2013-12-24

php面试题全部内容如下。

1、实现中文字串截取无乱码的方法?

答:

代码示例:
function GBsubstr($string, $start, $length) {
    if(strlen($string)>$length){
     $str=null;
     $len=$start+$length;
     for($i=$start;$i<$len;$i++){
    if(ord(substr($string,$i,1))>0xa0){
     $str.=substr($string,$i,2);
     $i++;
    }else{
     $str.=substr($string,$i,1);
     }
    }
   return $str.'...';
    }else{
   return $string;
   }
}

2.用PHP写出显示客户端IP与服务器IP的代码?
答:

打印客户端IP:echo $_SERVER[‘REMOTE_ADDR’]; 或者: getenv('REMOTE_ADDR');
   打印服务器IP:echo gethostbyname("www.");

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./index.html,如何得到它的内容?
答:方法1(对于PHP5及更高版本):
 

代码示例:
  $readcontents = fopen("http://www./index.html", "rb");
   $contents = stream_get_contents($readcontents);
   fclose($readcontents);
   echo $contents;
 

   方法2:
  

echo file_get_contents("http://www./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="/blog_article/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./abc/de/fg.php?id=1 需要取出 php 或 .php
答案1:
  

代码示例:
function getExt($url){
   $arr = parse_url(/blog_article/$url/index.html);
 
   $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);
    }
}

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

代码示例:
function getRelativePath($a, $b) { 
    $returnPath = array(dirname($b)); 
    $arrA = explode('/', $a); 
    $arrB = explode('/', $returnPath[0]); 
    for ($n = 1, $len = count($arrB); $n < $len; $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);

   希望以上为大家提供的php面试题,对大家有所帮助,真诚期待在您的应聘中可以用得上。


    
[2]PHP程序员面试题(经典汇总,mysql为主)
    来源: 互联网  发布时间: 2013-12-24

以下是本节php面试题的全部内容。

1.表单中 get与post提交方法的区别?
答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息.

2.session与cookie的区别?
答:session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放.
   cookie:用来存储连续訪問一个頁面时所使用,是存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的。
   两者都可通过时间来设置时间长短.

3.数据库中的事务是什么?
答:事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作完成,事务则提交,其修改将作用于所有其他数据库进程。如果一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。

4、能够使HTML和PHP分离开使用的模板?
答:

Smarty,Dwoo,TinyButStrong,Template Lite,Savant,phemplate,XTemplate

5、优化MYSQL数据库的方法?
答:

1)、选取最适用的字段属性,尽可能减少定义字段长度,尽量把字段设置NOT NULL,例如'省份,性别',最好设置为ENUM

2)、使用连接(JOIN)来代替子查询:
 

  a.删除没有任何订单客户:DELETE FROM customerinfo WHERE customerid NOT in(SELECT customerid FROM orderinfo)
   b.提取所有没有订单客户:SELECT FROM customerinfo WHERE customerid NOT in(SELECT customerid FROM orderinfo)
   c.提高b的速度优化:SELECT FROM customerinfo LEFT JOIN orderid customerinfo.customerid=orderinfo.customerid
   WHERE orderinfo.customerid IS NULL

3)、使用联合(UNION)来代替手动创建的临时表
   a.创建临时表:

SELECT name FROM `nametest` UNION SELECT username FROM `nametest2`

4)、事务处理:
   a.保证数据完整性,例如添加和修改同时,两者成立则都执行,一者失败都失败
  

代码示例:
mysql_query()("BEGIN");
   mysql_query("INSERT INTO customerinfo (name) VALUES ('$name1')";
   mysql_query("SELECT * FROM `orderinfo` where customerid=".$id");
   mysql_query("COMMIT");

5)、锁定表,优化事务处理:
   a.我们用一个 SELECT 语句取出初始数据,通过一些计算,用 UPDATE 语句将新值更新到表中。
     包含有 WRITE 关键字的 LOCK TABLE 语句可以保证在 UNLOCK TABLES 命令被执行之前,
     不会有其它的访问来对 inventory 进行插入、更新或者删除的操作
  

mysql_query("LOCK TABLE customerinfo READ, orderinfo WRITE");
   mysql_query("SELECT customerid FROM `customerinfo` where id=".$id);
   mysql_query("UPDATE `orderinfo` SET ordertitle='$title' where customerid=".$id);
   mysql_query("UNLOCK TABLES");

6)、使用外键,优化锁定表
   a.把customerinfo里的customerid映射到orderinfo里的customerid,
     任何一条没有合法的customerid的记录不会写到orderinfo里
  

CREATE TABLE customerinfo
   (
     customerid INT NOT NULL,
     PRIMARY KEY(customerid)
   )TYPE = INNODB;
   CREATE TABLE orderinfo
   (
     orderid INT NOT NULL,
     customerid INT NOT NULL,
     PRIMARY KEY(customerid,orderid),
     FOREIGN KEY (customerid) REFERENCES customerinfo
     (customerid) ON DELETE CASCADE 
   )TYPE = INNODB;
 

   注意:'ON DELETE CASCADE',该参数保证当customerinfo表中的一条记录删除的话同时也会删除order
         表中的该用户的所有记录,注意使用外键要定义事务安全类型为INNODB;

7)、建立索引:
   a.格式:
   (普通索引)->
   创建:CREATE INDEX <索引名> ON tablename (索引字段)
   修改:ALTER TABLE tablename ADD INDEX [索引名] (索引字段)
   创表指定索引:CREATE TABLE tablename([...],INDEX[索引名](索引字段))
   (唯一索引)->
   创建:CREATE UNIQUE <索引名> ON tablename (索引字段)
   修改:ALTER TABLE tablename ADD UNIQUE [索引名] (索引字段)
   创表指定索引:CREATE TABLE tablename([...],UNIQUE[索引名](索引字段))
   (主键)->
   它是唯一索引,一般在创建表是建立,格式为:
   CREATA TABLE tablename ([...],PRIMARY KEY[索引字段])

8)、优化查询语句
   a.最好在相同字段进行比较操作,在建立好的索引字段上尽量减少函数操作
   例子1:
  

SELECT * FROM order WHERE YEAR(orderDate)<2008;(慢)
   SELECT * FROM order WHERE orderDate<"2008-01-01";(快)
 

   例子2:
 

   SELECT * FROM order WHERE addtime/7<24;(慢)
   SELECT * FROM order WHERE addtime<24*7;(快)


   例子3:
 

   SELECT * FROM order WHERE title like "%good%";
   SELECT * FROM order WHERE title>="good" and name<"good";

6、MYSQL取得当前时间的函数是?,格式化日期的函数是(2分)
答:now(),dateformat()

这份php面试题,重点考核了mysql性能优化方面的内容,看着像是招会php编程的mysql数据库的DBA,哈~~


    
[3]php程序员面试题(新浪篇)
    来源: 互联网  发布时间: 2013-12-24

新浪PHP工程笔试题
1. 写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名
  例如: http://www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php

2. 在 HTML 语言中,页面头部的 meta 标记可以用来输出文件的编码格式,以下是一个标准的 meta 语句
  <META http-equiv='Content-Type' content='text/html; charset=gbk'>
  请使用 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将()添上

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

5.简述论坛中无限分类的实现原理。

6.设计一个网页,使得打开它时弹出一个全屏的窗口,该窗口中有一个文本框和一个按钮。用户在文本框中输入信息后点击按钮就可以把窗口关闭,而输入的信息却在主网页中显示

网上答案部分
1. 写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名 

2.  例如: http://www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php  

3.截词和正则都可以,就这么一串高效能体现在哪里?(题目出的很2) 

4.  5.2. 在 HTML 语言中,页面头部的 meta 标记可以用来输出文件的编码格式,以下是一个标准的 meta 语句 

6.  <META http-equiv='Content-Type' content='text/html; charset=gbk'>

7.  请使用 PHP 语言写一个函数,把一个标准 HTML 页面中的类似 meta 标记中的 charset 部分值改为 big5 

8.  请注意: 

9.  (1) 需要处理完整的 html 页面,即不光此 meta 语句 

10.  (2) 忽略大小写 

11.  (3) ' 和 " 在此处是可以互换的 

12.  (4) 'Content-Type' 两侧的引号是可以忽略的,但 'text/html; charset=gbk' 两侧的不行 

13.  (5) 注意处理多余空格 

14.字符处理和正则都可以,注意1是啥意思?怕人误认为只处理这一句?出题者大概想考正则,实际应用确实正则加字符处理最好,因为变态meta写法太多了。(从题目看,出题者玩的也不多,所以题目就2了) 

15.  16.3. 写一个函数,算出两个文件的相对路径 

17.  如 $a = '/a/b/c/d/e.php';   18.  $b = '/a/b/12/34/c.php'; 

19.  计算出 $b 相对于 $a 的相对路径应该是 ../../c/d将()添上 

20.解法explode(),但是我不明白这个具体实践有什么用? 

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

23.递归,函数熟悉,没意义的题目(出题者很2) 

24.  25.5.简述论坛中无限分类的实现原理。 

26.忘记了,网上一大坨,难道到新浪就是做论坛的吗?新浪的论坛有discuz的普及吗?(出题者很2)   27.  28.6.设计一个网页,使得打开它时弹出一个全屏的窗口,该窗口中有一个文本框和一个按钮。用户在文本框中输入信息后点击按钮就可以把窗口关闭,而输入的信息却在主网页中显示。 

29.不知道,不过可以参考一些弹出的calendar,点了弹出calendar窗口,然后选中日期后,关闭窗口,日期输入到指定框。新浪有啥地方让人愿意输入的?(出题者很2)

就这些了,有关php的面试题。
写的有点乱,大家将就参考吧,主要理解下问题思路与实现方法,以备在日后的应聘中用得到,


    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php文件下载(防止中文文件名乱码)的示例代码 iis7站长之家
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3