这几天在面试,下面分享一下这几天面试所遇到的笔试题,目前还不打算工作,面试题会持续更新的,有些不想写答案了,有心的可以自己看着面试题查一下感觉记忆更深点。下面分享一下这几天遇到的php面试题。

掌贝面试题

1、分别列出如下类型的有符号的和无符号的TINYINT、SMALLINT、MEDLUMINT、INT

TINYINT-2^7 - 2^7-10 ~ 2^8-1

SMALLINT-2^15 - 2^15-1 0 ~ 2^16-1

MEDIUMINT-2^23 - 2^23-1 0 ~ 2^24-1

INT-2^31 - 2^31-1 0 ~ 2^32-1

2、PHP调试MYSQL储存过程的两种方法

php调用mysql存储过程和函数的方法一:

程序代码

$host="localhost";

$user="root";

$password="11212";

$db="samp_db";

$dblink=mysql_connect($host,$user,$password)

or die("can't connect to mysql");

mysql_select_db($db,$dblink)

or die("can't select samp_db");

$res=mysql_query("set @a=$password",$dblink);

$res=mysql_query("call aa(@a)",$dblink);

$res=mysql_query("select @a",$dblink);

$row=mysql_fetch_row($res);

echo $row[0];

php调用mysql存储过程和函数方法二:此方法需要db_mysqli.dll的支持!

调用带有select语句的存储过程就出现 PROCEDURE p can’t return a result set in the given context的错误。google了半天,在mysql官网上找到一些说法,db_mysql的模块不支持存储过程调用,解决方法是用db_mysqli。测试了一下,果然可以了。

用法比较简单,没啥好说的,从网上copy一段代码吧:

程序代码

<?php

$link = mysqli_connect(

'localhost',

'root',

'root',

'db_name');

if (!$link) {

printf("Can't connect to MySQL Server. Errorcode: %s\n", mysqli_connect_error());

exit;

}

if ($result = mysqli_query($link, "call se_proc('crm')")) {

while( $row = mysqli_fetch_array($result) ){

echo ($row[0]. "--------- SR. " . $row[1] . "

");

}

mysqli_free_result($result);

}

mysqli_close($link);

?>

3、MYSQL中InnoDB引擎的行锁是通过加在什么上完成(或称实现的)?为什么是这样子的?

Innodb的行锁是加在索引实现的;

   原因是:innodb是将primary key index和相关的行数据共同放在B+树的叶节点;innodb一定会有一个primary key,secondary index查找的时候,也是通过找到对应的primary,再找对应的数据行;

4、MYSQL数据库中有A、B两张表,A表中存储有3000W个手机号,B表中存储有1000W个手机号,用SQL代码实现交、并、差,如何做才能最快最高效的得到结果集?

5、在javascript中如何声明一个类?

var my = new MyClass();

6、null和undefined的区别是什么?

undefined表示变量声明但未初始化时的值,

null表示准备用来保存对象,还没有真正保存对象的值。从逻辑角度看,null值表示一个空对象指针。

任何时候都不建议显式的设置一个变量为undefined,但是如果保存对象的变量还没有真正保存对象,应该设置成null。

实际上,undefined值是派生自null值的,ECMAScript标准规定对二者进行相等性测试要返回true,即

 

alert(null==undefined);  // true

7、下面的代码,多久之后会弹出'end'?为什么?

var t=true

setTimeout{function(){t=false;},2000};

while(t){}

alert('end')

典型的死循环……js是单线程执行的,while里面死掉的时候setTimeout里面的函数是没机会执行的。

8、请问PHP中echo、print、print_r有什么区别?

echo是PHP语句, print和print_r是函数

print_r() 可以打印出复杂类型变量的值(如数组,对象)  

echo     输出一个或者多个字符串,语句没有返回值,函数可以有返回值(即便没有用)  

print()    只能打印出简单类型变量的值(如int,string)

9、谈谈COOKIE与SESSION的区别,以及如何修改SESSION的生存时间

1.存放位置:

  session保存在服务器,cookie保存在客户端

2.存放的形式:

  session是以对象的形式保存在服务器,cookie以字符串的形式保存在客户端

3.用途:

  session适合做客户的身份验证,cookie适合保存用户的个人设置,爱好等

4.路径:

  session不能区分路径,同一用户在访问一个网站期间,所有的session在任何一个地方都可以访问到;cookie中如果设置了参数路径,那么同一个网站下的cookie互相访问不到

5.安全性:

  cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,session较cookie更安全一些

6.大小及数量限制:

  单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能3K。不同浏览器所含cookie的最大个数不同,一般30到50个;一般认为session没有大小限制

修改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);

10、写出你能想到的所有HTTP返回状态值,并说明用途(比如:返回404表示找不到页面)

"100" : Continue 

"101" : witching Protocols 

"200" : OK 

"201" : Created 

"202" : Accepted 

"203" : Non-Authoritative Information 

"204" : No Content 

"205" : Reset Content 

"206" : Partial Content 

"300" : Multiple Choices 

"301" : Moved Permanently 

"302" : Found 

"303" : See Other 

"304" : Not Modified 

"305" : Use Proxy 

"307" : Temporary Redirect 

HTTP 400 - 请求无效 

HTTP 401.1 - 未授权:登录失败 

HTTP 401.2 - 未授权:服务器配置问题导致登录失败 

HTTP 401.3 - ACL 禁止访问资源 

HTTP 401.4 - 未授权:授权被筛选器拒绝 

HTTP 401.5 - 未授权:ISAPI 或 CGI 授权失败 

HTTP 403 - 禁止访问 

HTTP 403 - 对 Internet 服务管理器
(HTML) 的访问仅限于 Localhost 

HTTP 403.1 禁止访问:禁止可执行访问 

HTTP 403.2 - 禁止访问:禁止读访问 

HTTP 403.3 - 禁止访问:禁止写访问 

HTTP 403.4 - 禁止访问:要求 SSL 

HTTP 403.5 - 禁止访问:要求 SSL 128 

HTTP 403.6 - 禁止访问:IP 地址被拒绝 

HTTP 403.7 - 禁止访问:要求客户证书 

HTTP 403.8 - 禁止访问:禁止站点访问 

HTTP 403.9 - 禁止访问:连接的用户过多 

HTTP 403.10 - 禁止访问:配置无效 

HTTP 403.11 - 禁止访问:密码更改 

HTTP 403.12 - 禁止访问:映射器拒绝访问 

HTTP 403.13 - 禁止访问:客户证书已被吊销 

HTTP 403.15 - 禁止访问:客户访问许可过多 

HTTP 403.16 - 禁止访问:客户证书不可信或者无效 

HTTP 403.17 - 禁止访问:客户证书已经到期或者尚未生效 

HTTP 404.1 - 无法找到 Web 站点 

HTTP 404 - 无法找到文件 

HTTP 405 - 资源被禁止 

HTTP 406 - 无法接受 

HTTP 407 - 要求代理身份验证 

HTTP 410 - 永远不可用 

HTTP 412 - 先决条件失败 

HTTP 414 - 请求 - URI 太长 

HTTP 500 - 内部服务器错误 

HTTP 500.100 - 内部服务器错误 - ASP 错误 

HTTP 500-11 服务器关闭 

HTTP 500-12 应用程序重新启动 

HTTP 500-13 - 服务器太忙 

HTTP 500-14 - 应用程序无效 

HTTP 500-15 - 不允许请求 global.asa 

Error 501 - 未实现 

HTTP 502 - 网关错误

11、实现中文字符串截取无乱码的方法

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;

}

}

12、写一个函数,能够遍历一个文件夹下的所有文件和子文件夹

function get_dir_info($path){

$handle =
opendir($path);//打开目录返回句柄

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

$new_dir = $path .
DIRECTORY_SEPARATOR .$content;

if($content ==
'..' || $content == '.'){

continue;

}

if(is_dir($new_dir)){

echo
"<br>目录:".$new_dir
. '<br>';

get_dir_info($new_dir);

}else{

echo "文件:".$path.':'.$content
.'<br>';

}

}

}

get_dir_info($dir);

13、请写一段PHP代码,确保多个进程同时写入同一个文件成功

<?php

$fp =
fopen("/tmp/lock.txt","w+");

if(flock($fp,
LOCK_EX)){// 进行排它型锁定

fwrite($fp,"Write something
here\n");

flock($fp,
LOCK_UN);// 释放锁定

}else{

echo
"Couldn't lock the file !";

}

fclose($fp);

?>

14、请写出并说明如何在命令行下运行PHP脚本(写出两种方式)同时向PHP脚本传递参数?

首先进入php安装目录

php -f d:/wamp/www/1.php 其中-f参数指定要执行的php文件

php -r phpinfo(); 其中-r表示直接执行php代码,无需写开始结束标记

上海丹阳有限公司

1、删除员工表(staff)里的ID为1的记录,请写出sql语句

2、查询员工表(staff)里的id为1和id为2的记录,请写出sql语句

3、强制删除text文件夹下的所有文件,请写出Linux命令

4、把文件dir1里面的所有文件移动到dir2文件夹下,请写出Linux命令,

5、请写出判断邮箱地址的正则表达式,如有其它方法,请写出:

6、以下是httpd conf文件里的一段代码,想开启URL重写,请问怎么操作?有没有其它的方法可以实现?

#LoadModule request_module
modules/mod_requet_so

#LoadModule reqtimeout_module
modules/mod_reqtimeout_so

#LoadModule rewrite_module
modules/mod_rewrite_so

#LoadModule sed_module modules/mod_sed so

7、PHP里is_array方法的用途

8、请阅读下面的代码并写出输出结果;

class demo{

protected $str='abc';

function __construct(){

$this->str='def';

}

public function test(){

echo $this->str='jkl';

}

function __destruct(){

$this->str='ghi';

}

}

$obj=new demo();

$obj->test();

9、请说出.PHTML文件的用途:

上海家喔电子商务有限公司

3、JS弹出对话框有alert(),prompt(),confim(),他们区别是什么,获得焦点函数是什么。

4、利用jQuery,修改所有P元素的背景色为红色

5、什么是跨域访问?请写出至少一种解决方案。

6、myisam与innodb的区别。

7、写出发帖最多的5个人的sql

8、mysql数据优化,说说你做过的数据优化方案

9、简述下面程序的输出结果,简要说明原因,并解决

<?php

$temp = 0 =='a'?1:2;

echo $temp;

?>

11、请说一下MVC模式原理

12、请说一下smarty模板引擎的原理

13、PHP使用正则的方式,写出验证邮箱的正则

14、php中传值与引用的区别

15、php中获得当前脚本的路径

16、heredoc是一种特殊的字符串,它是如何组成的

17、将testserver文件夹及其下所有子文件夹及文件修改为www的拥有者

18、每天晚上19:00执行一次程序text.sh  如何处理?

19、如何修改配置 ,使得能上传超过20M大小的文件

保生堂面试题

1、用PHP写出二分法算法。

2、写一个函数,算出两个文件的相对路径

3、表单中GET与POST提交方法的区别

4、session与cookie的区别?

5、数据库中的事务,事件、存储过程分别是什么?如何使用?简要阐述

6、尽可能多的谈谈自己对数据库优化的理解

7、用PHP打印出前一天的时间格式是2016-5-10
22:21:20

8、echo(),print(),print_r()的区别

9、能够使HTML和PHP分离开使用的模板

10、写出你所知道的版本控制器的软件

11、尽可能多的写出一下函数的作用?

ucwords() array_search() array_unique()
array_shuffle() array_flip()

strap_tags() array_map() rtrim()
array_slice() array_merge() array_diff()

str_pad() array_combine() array_unshift()
http_build_query() range()

unset() array_rand() strrev()
substr_count() strnatcmp() join() strpos() isset()

12、封住一个函数获取客户端IP地址的方法?

(提示:HTTP_CLIENT_IP 
HTTP_X_FORWARDED_FOR REMOTE_ADDR)

13、请说明php中传值与引用的区别。什么时候传值什么时候引用?

14、用PHP写出单例模式

远丰面试题

1、$row1=mysql_fetch_row()和$row2=mysql_fetch_array()有什么区别?

2、表单中get与post的提交方法的区别。

3、session与cookie的区别。

4、语句include和require能把另外一个文件包含到当前文件中,他们的区别是?为了避免多次包含同一文件,可以用语句()来代替他们

5、以下代码输出什么内容,为何?

$num = 10;

function foo(){

$num = $num*10;

}

foo{};

echo $num;

6、如何声明一个名为:“myclass”的方法和属性的类?如何实例化一个名为“myclass”的对象?

7、检测一个变量是否有设置的函数是?是否为空的函数是?

8、$arr =
array('james','tom','symfony');请打印出第一个元素的值

9、谈谈对mvc的认识,写出你了解或者熟悉的PHP框架名称,面向对象的3大特性是什么?

10、以下函数有什么作用?分别写出每个函数的作用。

error_reporting();

header();

function_exists();

ini_set();

ob_start();

session_start()

css及js部分

1、如何使用一个圆角矩形高度自适应。

2、相同的文字在IE中显示红色,在火狐中显示蓝色,写出CSS代码。

3、假设a.html和b.html在同一文件夹下面,用javascript实现当打开a.html页面之后5秒后跳转到b.html

4、常用的JS框架

5、什么是Ajax?其实现原理或工作过程简述。

6、CSS中,.div()
#div() div() 有什么区别?

7、写出下列函数含义

explode(),array_shift(),is_array(),addslashes(),opendir(),file_exissts(),preg_match_all(),array_unique(),krsort(),file_get_contents(),strip_tags(),is_numeric(),strtotime(),md5(),range(),htmlspecialchars(),define()

百胜公司

1、用PHP打印前一天的时间格式是2006-5-10
22:21:21

2、使用那些工具进行版本控制

3、列出您用的模板引擎

4、大流量的网站,用什么样的方法来解决访问量问题

5、用PHP写出显示客户端IP与服务器IP的代码

6、在PHP中error_reporting这个函数有什么作用

7、请用正则表达式写一个函数验证电子邮箱的格式是否正确

8、如何通过javascript判断一个窗口是否已经被屏蔽

9、写出session的运行机制

10、防止sql注射漏洞一般用什么函数

11、在HTTP1.0中,状态码401的含义是什么

12、请写出PHP5的构造函数和析构函数

13、写出PHP中链接到页面的URL的预定义常量

14、以Apache模块的方式安装PHP,在文件http.conf中首先要用到什么语句动态加载PHP模块,然后再用什么语句使所有扩展名为php的文件都作为PHP脚本处理?

15、语句include和require都能把另外一个文件包含到当前文件中,他们的区别分别是什么?为了避免多次性包含同一文件,可以用语句什么方法来代替他们?

16、类的属性可以序列化后保存到session中,从而以后可以恢复整个类,这要用到的函数是什么?

17、有一表 menu(mainmenu,submenu,url),请用递归法写出一树形菜单,将所有的menu列出来。

18、某内容管理系统中,表message有如下字段 id(文章id),title(文章标题) content(文章内容),category_id(文章分类id),hits(点击量)创建上表,写出sql语句

19、同样上述管理系统,表comment记录用户回复内容,字段如下:

comment_id(回复id),id(文章id,关联message表中的id),comment_content(回复内容)

现通过查询数据库需要得到以下格式的文章标题列表,并按照回复数量排序,回复最高的排在最前面:(文章id,文章标题,点击量,回复数量)

用一个sql语句完成上述查询,如果文章没有回复则回复数量id为0。

目前就这些,还在面试中,会持续更新的。

本文属原创内容,为了尊重他人劳动,转载请注明本文地址:

http://www.cnblogs.com/luokakale/p/7445431.html

2017最新PHP面试题的更多相关文章

  1. (转)2017年最新企业面试题之shell(一,二)

    2017年最新企业面试题之shell(一) ********************************************** 企业Shell面试题1:批量生成随机字符文件名案例 * *** ...

  2. 2016最新Java笔试题集锦

    更新时间:2015-08-13         来源:网络         投诉删除 [看准网(Kanzhun.com)]笔试题目频道小编搜集的范文“2016最新Java笔试题集锦”,供大家阅读参考, ...

  3. 最全最新java面试题系列全家桶(带答案)

    最全最新java面试题系列全家桶(带答案) 置顶 2019年04月06日 22:40:28 青春季风暴 阅读数 14082 文章标签: java面试题技术栈 更多 分类专栏: 面试   版权声明:本文 ...

  4. 2018年最新Java面试题及答案整理(持续完善中…)

    2018年最新Java面试题及答案整理(持续完善中…) 基础篇 基本功 面向对象特征 封装,继承,多态和抽象 封装封装给对象提供了隐藏内部特性和行为的能力.对象提供一些能被其他对象访问的方法来改变它内 ...

  5. 2020年最新ZooKeeper面试题(附答案)

    2020年最新ZooKeeper面试题 1. ZooKeeper 是什么? ZooKeeper 是一个开源的分布式协调服务.它是一个为分布式应用提供一致性服务的软件,分布式应用程序可以基于 Zooke ...

  6. 2021最新Java面试题全集-20210326版

    在手撕了数千道网络流传的面试题,外加十多个不眠之夜, 终于从里面精心挑选出约500道题目, 做为大家求职.跳槽前复习准备面试使用. 一:挑选题目的原则: 常考的.常被面试问到的 题目有一定的深度和难度 ...

  7. 最新Python笔试题2017 涵盖知识面广泛

    引言 想找一份Python开发工作吗?那你很可能得证明自己知道如何使用Python.下面这些问题涉及了与Python相关的许多技能,问题的关注点主要是语言本身,不是某个特定的包或模块.每一个问题都可以 ...

  8. 关于IOS sourcetree 注册 2017最新hosts

    今天用sourcetree  git管理工具的时候,第一次打开发现需要注册. 在网上搜索了一下教程,发现现在新版本没有  (我同意协议)这个条款,这就尴尬.我以前没有sourcetree的账号. 试了 ...

  9. 2017年Java面试题整理

    原文出处:CSDN邓帅 面试是我们每个人都要经历的事情,大部分人且不止一次,这里给大家总结最新的2016年面试题,让大家在找工作时候能够事半功倍. 1.Switch能否用string做参数? a.在 ...

随机推荐

  1. git合并代码解决冲突

    一直测试的我,之前有接触过git命令,但是没有详细的去看这些命令的意思,只是背着在用,今天一时兴起,看到了廖雪峰的git方面的博客<a href="https://www.liaoxu ...

  2. hibernate的集合映射(详细笔记)

  3. JDBC 连接数据库的步骤

    1.JDBC (JAVA DATABASE CONNECTION) (Java 数据库 连接)2.JAVA 面向对象的编程语言 (汉语) || || 标准(接口)---->jar包(mysql- ...

  4. Java基础笔记11

    异常: 即java程序在运行时出现的意外情况.  java如何处理异常. try{ //可能发生异常的地方 }catch(异常类型 对象){  //异常处理处 }catch(异常类型 对象){ }.. ...

  5. Azkaban 2.5.0 搭建和一些小问题

    安装环境: 系统环境: ubuntu-12.04.2-server-amd64 安装目录: /usr/local/ae/ankaban JDK 安装目录: export JAVA_HOME=/usr/ ...

  6. Azure ARM虚拟机部署反恶意软件-安全扩展

    Azure虚拟机,默认情况下没有安装杀毒软件.如果您有此需求可以通过Azure 扩展进行安装,有关Azure反恶意软件的官方说明请参考:https://docs.azure.cn/zh-cn/secu ...

  7. ssh秘钥分发错误“/usr/bin/ssh-copy-id: ERROR: No identities found”

    在做ssh的时候出现下面的错误,这个错误根本没有遇到过啊,仔细一看,后面的端口不对,我要发到的服务器端口是22,我想肯定是这个原因,结果不加端口,还是提示 这个错误,于是咨询下其他人,结果发现要分发的 ...

  8. python中pygame模块的Linux下安装过程

    一.使用pip安装Python包 大多数较新的Python版本都自带pip,因此首先可检查系统是否已经安装了pip.在Python3中,pip有时被称为pip3. 1.在Linux和OS X系统中检查 ...

  9. python3 re正则匹配数据获取案例

    # coding=utf-8import requestsimport jsonfrom retrying import retryimport re class TyY: def __init__( ...

  10. 几种文件查找命令,whereis ,find ,locate.

    whereis对于文件的查找,是将系统内的所有文件放在一个数据库文件里.whereis 和 locate 都是以该数据库为准的(由于每个数据库会有一个更新时间,一般在更新时间之后才可以找到).而fin ...