唯品会php面试题(精选12篇)由网友“heyiii9”投稿提供,下面是小编收集整理的唯品会php面试题,供大家参考借鉴,欢迎大家分享。
篇1:唯品会php面试题
1.const关键字作用是什么?Static关键字作用是什么?
2.先进先出、后进先出的典型数据结构分别是什么?用你熟悉的语言编写其中一个数据结构。
队列 栈
3.(任选一题)
(1)http协议状态码200、302、404、500分别代表什么?
200是最常见的http状态码,它的含义很简单,就是成功了。一个正常网页返回的状态码就是200.
302是临时性重定向到意思,就是一个网页临时被搬到了另一个网页上。
404是错误页面返回的状态码,表示页面不存在或被删除。
500表示服务器正在维护。
301是seo(网站优化)中最重要的http状态码,很多地方都会用到301重定向。这是一种永久性的重定性。
(2)tcp协议和udp协议的区别是什么?各举一个典型的应用场景。
TCP(TransmissionControlProtocol)和UDP(UserDatagramProtocol)协议属于传输层协议。
TCP是美国国防部设计的两种传输协议之一,另一种是UDP。UDP是一种不可靠的网络服务,负载比较小,而TCP则是一种可靠的通信服务,负载相对而言比较大。TCP采用套接字(socket)或者端口(port)来建立通信。TCP给端口到端口通信提供了错误和流量控制机制,同时TCP还负责建立连接、处理终止和中断的端对端通信控制。 通常情况下我们认为TCP相比UDP具有更大的通信负载,UDP不具备TCP的控制特性,TCP用了大约20个字节来发送一个65Kbps的数据块,这个报头占整个数据块的比重也不过3%。总得来看,这个负载是合理的,何况还令通信具有了可靠性。
(3)解释一下LRU算法。
概述LRU是Least Recently Used近期最少使用算法。 内存管理的一种页面置换算法,对于在内存中但又不用的数据块(内存块)叫做LRU
4.(任选一题)
(1)用你熟悉的语言实现冒泡排序算法。
(2)有两个目录a、b的绝对路径(字符串),用你熟悉的语言实现一个算法,求出b相对于a的相对路径。
5.(任选一题)
(1)有一个整数数组,请用你熟悉的编程语言写一个算法将这个数组变成奇数在前偶数在后。并给出你的算法的空间复杂度和时间复杂度。
(2)现有n个小于100000的整数,写一个算法将这些数从小到大排序,要求时间复杂度O(n),空间复杂度O(1)。
(3)假设用户id为整数,现有10亿条用户购买商品的日志记录,每条记录大约100Byte,现在策划部要求对其中购买商品件数最多的100个用户进行奖励,给你一台内存2G的机器,如何花费尽量少的内存计算出这100个用户的id。
6.(任选一题)
(1)列举你所知道的设计模式(至少三个),并解释其中的两个。
(2)试解释并比较面型对象编程和面向过程编程。
7.仓库中有100颗金豆,拣货员在拣货的时候无意中把一颗外观一摸一样但重量不同的假豆掉了进去。仓库主管发现后给了他一架天平,并说如果他能通过最多两次称量得出假豆比真豆重还是轻,就不对他进行惩罚。你如果你是拣货员,你能让自己免于惩罚吗?
8.(附加题)
开发互联网应用与开发企业级应用有什么异同?开发电子商务网站和开发新闻类网站什么异同?思考一下,说说你的观点。
[唯品会php面试题]
篇2:PHP面试题
这是一份比较全面的PHP面试题.对准备去新公司应聘PHP职位的开发者应该有帮助.
或者说,对招聘PHP开发人员的企业也有些帮助,不过就不要原样打印出来考了,稍微改一改.
简述题(50分)
1、用PHP打印出前一天的时间格式是-5-10 22:21:21(2分)
2、echo,print(),print_r()的区别(3分)
3、能够使HTML和PHP分离开使用的模板(1分)
4、使用哪些工具进行版本控制?(1分)
5、如何实现字符串翻转?(3分)
---------------------------------------------------------------
6、优化MYSQL数据库的方法,(4分,多写多得)
7、PHP的意思(送1分)
8、MYSQL取得当前时间的函数是?,格式化日期的函数是(2分)
9、实现中文字串截取无乱码的方法。(3分)
---------------------------------------------------------------
10、您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?(1分)
11、您是否用过模板引擎? 如果有您用的模板引擎的名字是?(1分)
12、请简单阐述您最得意的开发之作(4分)
13、对于大流量的网站,您采用什么样的方法来解决访问量问题?(4分)
-----------------------------------------------------------------
14、用PHP写出显示客户端IP与服务器IP的代码1分)
15、语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们? (2分)
16、如何修改SESSION的生存时间(1分).
17、有一个网页地址, 比如PHP研究室主页: www.phpv.net/,如何得到它的内容?($1分)
18、在HTTP 1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(?);(2分)
19、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须?(1分)
20、谈谈asp,php,jsp的优缺点(1分)
21、谈谈对mvc的认识(1分)
-------------------------------------------------------------------
22、写出发贴数最多的十个人名字的SQL,利用下表:members(id,username,posts,pass,email)(2分)
23. 请说明php中传值与传引用的区别。什么时候传值什么时候传引用?(2分)
24. 在PHP中error_reporting这个函数有什么作用? (1分)
25. 请写一个函数验证电子邮件的格式是否正确 (2分)
26. 简述如何得到当前执行脚本路径,包括所得到参数。(2分)
27.如何修改SESSION的生存时间. (1分)
--------------------------------------------------------------------
28、JS表单弹出对话框函数是?获得输入焦点函数是? (2分)
29、JS的转向函数是?怎么引入一个外部JS文件?(2分)
30、foo()和@foo()之间有什么区别?(1分)
31、如何声明一个名为”myclass”的没有方法和属性的类? (1分)
32、如何实例化一个名为”myclass”的对象?(1分)
33、你如何访问和设置一个类的属性? (2分)
34、mysql_fetch_row() 和mysql_fetch_array之间有什么区别? (1分)
--------------------------------------------------------------------
35、GD库是做什么用的? (1分)
36、指出一些在PHP输入一段HTML代码的办法。(1分)
37、下面哪个函数可以打开一个文件,以对文件进行读和写操作?(1分)
(a) fget() (b) file_open() (c) fopen() (d) open_file()
38、下面哪个选项没有将 john 添加到users 数组中? (1分)
(a) $users[] = ‘john’;
(b) array_add($users,’john’);
(c) array_push($users,‘john’);
(d) $users ||= ‘john’;
39、下面的程序会输入是否?(1分)
$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);
41、如何使用下面的类,并解释下面什么意思?(3)
class test{
function Get_test($num){
$num=md5(md5($num).“En”);
return $num;
}
}
----------------------------------------------------------------------------
42、写出 SQL语句的格式 : 插入 ,更新 ,删除 (4分)
表名 UserName Tel Content Date
张三 13333663366 大专毕业 2006-10-11
张三 13612312331 本科毕业 2006-10-15
张四 021-55665566 中专毕业 2006-10-15
(a) 有一新记录(小王 13254748547 高中毕业 -05-06)请用SQL语句新增至表中
(b) 请用sql语句把张三的时间更新成为当前系统时间
(c) 请写出删除名为张四的全部记录
43、请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别(2分)
44、MySQ自增类型(通常为表ID字段)必需将其设为(?)字段(1分)
45、写出以下程序的输出结果 (1分)
$b=201;
$c=40;
$a=$b>$c?4:5;
echo $a;
?>
46、检测一个变量是否有设置的函数是否?是否为空的函数是?(2分)
-----------------------------------------------------------------------------
47、取得查询结果集总数的函数是?(1分)
48、$arr = array(“james”, “tom”, “symfony”); 请打印出第一个元素的值 (1分)
49、请将41题的数组的值用“,”号分隔并合并成字串输出(1分)
50、$a = “abcdef”; 请取出$a的值并打印出第一个字母(1分)
51、PHP可以和sql server/oracle等数据库连接吗?(1分)
52、请写出PHP5权限控制修饰符(3分)
53、请写出php5的构造函数和析构函数(2分)
------------------------------------------------------------------------------
54、以下请用PHPMYADMIN完成
(一)创建新闻发布系统,表名为message有如下字段 (3分)
id 文章id
title 文章标题
content 文章内容
category_id 文章分类id
hits 点击量
(二)同样上述新闻发布系统:表comment记录用户回复内容,字段如下 (4分)
comment_id 回复id
id 文章id,关联message表中的id
comment_content 回复内容
现通过查询数据库需要得到以下格式的文章标题列表,并按照回复数量排序,回复最高的排在最前面
文章id 文章标题 点击量 回复数量
用一个SQL语句完成上述查询,如果文章没有回复则回复数量显示为0
(三)上述内容管理系统,表category保存分类信息,字段如下 (3分)
category_id int(4) not null auto_increment;
categroy_name varchar(40) not null;
用户输入文章时,通过选择下拉菜单选定文章分类
写出如何实现这个下拉菜单
填空题
1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量____中;而链接到当前页面的URL记录在预定义变量____中,
2.执行程序段将输出____。
3.在HTTP 1.0中,状态码 401 的含义是____;如果返回“找不到文件”的提示,则可用 header 函数,其语句为____。
4.数组函数 arsort 的作用是____;语句 error_reporting(2047)的作用是____。
5.PEAR中的数据库连接字符串格式是____。
6.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把scrīpt标记及其内容都去掉):____。
7.以Apache模块的方式安装PHP,在文件http.conf中首先要用语句____动态装载PHP模块,然后再用语句____使得Apache把所有扩展名为php的文件都作为PHP脚本处理。
8.语句 include 和 require 都能把另外一个文件包含到当前文件中,它们的区别是____;为了避免多次包含同一文件,可以用语句____来代替它们。
9.类的属性可以序列化后保存到 session 中,从而以后可以恢复整个类,这要用到的函数是____。
10.一个函数的参数不能是对变量的引用,除非在php.ini中把____设为on.
11.SQL中LEFT JOIN的含义是____。如果 tbl_user记录了学生的姓名(name)和学号(ID),tbl_score记录了学生(有的学生考试以后被开除了,没有其记录)的学号(ID)和考试成绩(score)以及考试科目(subject),要想打印出各个学生姓名及对应的的各科总成绩,则可以用SQL语句____。
12.在PHP中,heredoc是一种特殊的字符串,它的结束标志必须____。
编程题
1. 写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名
例如: www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php
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将()添上
3.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。
4.简述论坛中无限分类的实现原理。
篇3:PHP面试题
这是一份比较全面的PHP面试题,对准备去新公司应聘PHP职位的开发者应该有帮助。 或者说,对招聘PHP开发人员的企业也有些帮助!
简述题(50分)
1、用PHP打印出前一天的时间格式是2006-5-10 22:21:21(2分)
2、echo(),print(),print_r()的区别(3分)
3、能够使HTML和PHP分离开使用的模板(1分)
4、使用哪些工具进行版本控制?(1分)
5、如何实现字符串翻转?(3分)
6、优化MYSQL数据库的方法。(4分,多写多得)
7、PHP的意思(送1分)
8、MYSQL取得当前时间的函数是?,格式化日期的函数是(2分)
9、实现中文字串截取无乱码的方法。(3分)
10、您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?(1分)
11、您是否用过模板引擎? 如果有您用的模板引擎的名字是?(1分)
12、请简单阐述您最得意的开发之作(4分)
13、对于大流量的网站,您采用什么样的方法来解决访问量问题?(4分)
14、用PHP写出显示客户端IP与服务器IP的代码1分)
15、语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们? (2分)
16、如何修改SESSION的生存时间(1分).
17、有一个网页地址, 比如PHP研究室主页: www.phpv.net/,如何得到它的内容?($1分)
18、在HTTP 1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(?);(2分)
19、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须?(1分)
20、谈谈asp,php,jsp的优缺点(1分)
21、谈谈对mvc的认识(1分)
22、写出发贴数最多的十个人名字的SQL,利用下表:members(id,username,posts,pass,email)(2分)
23. 请说明php中传值与传引用的区别。什么时候传值什么时候传引用?(2分)
24. 在PHP中error_reporting这个函数有什么作用? (1分)
25. 请写一个函数验证电子邮件的格式是否正确 (2分)
26. 简述如何得到当前执行脚本路径,包括所得到参数。(2分)
27.如何修改SESSION的生存时间. (1分)
28、JS表单弹出对话框函数是?获得输入焦点函数是? (2分)
29、JS的转向函数是?怎么引入一个外部JS文件?(2分)
30、foo()和@foo()之间有什么区别?(1分)
31、如何声明一个名为”myclass”的没有方法和属性的类? (1分)
32、如何实例化一个名为”myclass”的对象?(1分)
33、你如何访问和设置一个类的属性? (2分)
34、mysql_fetch_row() 和mysql_fetch_array之间有什么区别? (1分)
35、GD库是做什么用的? (1分)
36、指出一些在PHP输入一段HTML代码的办法。(1分)
37、下面哪个函数可以打开一个文件,以对文件进行读和写操作?(1分)
(a) fget() (b) file_open() (c) fopen() (d) open_file()
38、下面哪个选项没有将 john 添加到users 数组中? (1分)
(a) $users[] = ‘john’;
(b) array_add($users,’john’);
(c) array_push($users,‘john’);
(d) $users ||= ‘john’;
篇4:PHP面试题
PHP面试题大全
基础题:
1.表单中 get与post提交方法的区别?
答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息.
2.session与cookie的区别?
答:session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放
cookie:用来存储连续L一个面时所使用,是存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的,
两者都可通过时间来设置时间长短
3.数据库中的事务是什么?
答:事务(transaction)是作为一个单元的`一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作 完成,事务则提交,其修改将作用于所有其他数据库进程。如果一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。
简述题:
1、用PHP打印出前一天的时间格式是-5-10 22:21:21(2分)
答:echo date(‘Y-m-d H:i:s’, strtotime(‘-1 days’));
2、echo,print(),print_r()的区别(3分)
答:echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)
print() 只能打印出简单类型变量的值(如int,string)
print_r() 可以打印出复杂类型变量的值(如数组,对象)
echo 输出一个或者多个字符串
3、能够使HTML和PHP分离开使用的模板(1分)
答:Smarty,Dwoo,TinyButStrong,Template Lite,Savant,phemplate,XTemplate
5、使用哪些工具进行版本控制?(1分)
答:cvs,svn,vss;
6、如何实现字符串翻转?(3分)
答:echo strrev($a);
7、优化MYSQL数据库的方法。(4分,多写多得)
答:
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) 8i VALUES (‘$name1′)”;
mysql_query(“SELECT * FROM `orderinfo` where customerid=”.$id”);
mysql_query(“COMMIT”);
5、锁定表,优化事务处理:
a.我们用一个 SELECT 语句取出初始数据,通过一些计算,用 UPDATE 语句将新值更新到表中,
包含有 WRITE(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、优化查询语句
篇5:php经典面试题
1、用PHP打印出前一天的时间格式是-02-10 22:21:21(2分)
echo date('Y-m-d H:i:s', strtotime('-1 day'));
或者
$yesterday = time() - (24 * 60 * 60);
echo 'today:'.date('Y-m-d H:i:s').“n”;
echo 'yesterday:'. date('Y-m-d H:i:s', $yesterday).“n”;
2、echo(),print(),print_r()的区别(3分)
echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)
print只能打印出简单类型变量的值(如int,string)
print_r可以打印出复杂类型变量的值(如数组,对象)
echo -- 输出一个或者多个字符串
3、能够使HTML和PHP分离开使用的模板(1分)
smarty,Heyes Template Class等
5、使用哪些工具进行版本控制?(1分)
CVS和SVN,SVN号称下一代CVS,功能强大,不过CVS是老牌,市占率很高.我一直用SVN,题目是问用什么工具呃,这个可能需要这么回答:CVS Server on Apache作服务端,WinCVS作客户端;Subversion on Apache/DAV 做服务端,TortoiseSVN做客户端,或者Subclipse做客户端.
6、如何实现字符串翻转?(3分)
strrev()
或者
$str = “abcdefg”;
function strrevv($str)
{
$len=strlen($str);
$newstr = '';
for($i=$len;$i>=0;$i--)
{
$newstr .= $str{$i};
}
return $newstr;
}
$showstr = strrevv($str);
echo $showstr.“
”;
---------------------------------------------------------------
7、优化MYSQL数据库的方法。(4分,多写多得)
(1).选取最适用的字段属性,应该尽量把字段设置为NOT NULL,这样在将来执行查询的时候,数据库不用去比较NULL值。
(2).使用连接(JOIN)来代替子查询(Sub-Queries)
(3).使用联合(UNION)来代替手动创建的临时表
(4).尽量少使用 LIKE 关键字和通配符
(5).使用事务和外键
或者
(1).数据库设计方面,这是DBA和Architect的责任,设计结构良好的数据库,必要的时候,去正规化(英文是这个:denormalize,中文翻译成啥我不知道),允许部分数据冗余,避免JOIN操作,以提高查询效率
(2).系统架构设计方面,表散列,把海量数据散列到几个不同的表里面.快慢表,快表只留最新数据,慢表是历史存档.集群,主服务器Read & write,从服务器read only,或者N台服务器,各机器互为Master
(3).(1)和(2)超越PHP Programmer的要求了,会更好,不会没关系.检查有没有少加索引
(4).写高效的SQL语句,看看有没有写低效的SQL语句,比如生成笛卡尔积的全连接啊,大量的Group By和order by,没有limit等等.必要的时候,把数据库逻辑封装到DBMS端的存储过程里面.缓存查询结果,explain每一个sql语句
(5).所得皆必须,只从数据库取必需的数据,比如查询某篇文章的评论数,select count(*) ... where article_id = 就可以了,不要先select * ... where article_id = 然后msql_num_rows.只传送必须的SQL语句,比如修改文章的时候,如果用户只修改了标题,那就... set title = where article_id = 不要set content = (大文本)
(6).必要的时候用不同的存储引擎.比如InnoDB可以减少死锁.HEAP可以提高一个数量级的查询速度
8、PHP的意思(送1分)
Hypertext Preprocessor
9、MYSQL取得当前时间的函数是?,格式化日期的函数是(2分)
now(), DATE_FORMAT(date,format)
10、实现中文字串截取无乱码的方法。(3分)
mb_substr()
---------------------------------------------------------------
11、您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?(1分)
TortoiseSVN-1.2.6 svn-1.2.3
12、您是否用过模板引擎? 如果有您用的模板引擎的名字是?(1分)
smarty
13、请简单阐述您最得意的开发之作(4分)
这个自己想,因为你不再是菜鸟,每个人都有不同的思路,思路也会随之自己的知识而改变……
14、对于大流量的网站,您采用什么样的方法来解决访问量问题?(4分)
首先,确认服务器硬件是否足够支持当前的流量
其次,优化数据库访问。
第三,禁止外部的盗链。
第四,控制大文件的下载。
第五,使用不同主机分流主要流量
第六,使用流量分析统计软件。
-----------------------------------------------------------------
15、用PHP写出显示客户端IP与服务器IP的代码1分)
//显示客户端I
function get_client_ip() {#
if(getenv('HTTP_CLIENT_IP')) {
$client_ip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR')) {
$client_ip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR')) {
$client_ip = getenv('REMOTE_ADDR');
} else {
$client_ip = $HTTP_SERVER_VAR['REMOTE_ADDR'];
}
return $client_ip;
}
//服务器IP
function get_server_ip(){
if (isset($_SERVER))
{
if($_SERVER['SERVER_ADDR']) $huoqu_ip=$_SERVER['SERVER_ADDR'];
else $huoqu_ip=$_SERVER['LOCAL_ADDR'];
}
else
{
$huoqu_ip=getenv('SERVER_ADDR');
}
return $huoqu_ip;
}
16、语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们? (2分)
require()和include()除了怎样处理失败之外在各方面都完全一样。include()产生一个警告而require()则导致一个致命错误。
换句话说,如果你想在丢失文件时停止处理页面,用require()。include() 就不是这样,脚本会继续运行。
require()无论如何都会包含文件,而include()可以有选择地包含.www.
代替用
include_once
require_once
17、如何修改SESSION的生存时间(1分).(没有测试)
$savePath = “./session_save_dir/”;
$lifeTime = 24 * 3600;
session_save_path($savePath);
session_set_cookie_params($lifeTime);
session_start();
18、有一个网页地址, 比如PHPma主页: www.phpma.com,如何得到它的内容?($1分)
file_get_contents($url)
19、在HTTP 1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(?);(2分)
未授权(Unauthorized)
Header(“http/1.0 403 Forbidden”);
经典面试题(PHP基础型II)附答案来源:本站编辑 作者:phpma 时间:2009-02-13 Tag:PHP 经典面试题 (基础型II) 附答案 点击: 44 求职与招聘 往往少不了面试与笔试,作为一个php程序员、多多少少都会有类似的经历……以下是本人收集并整理的PHP面试题目,希望对同行们有所帮助,找到一份合适的php开发工作!(共三节)
以下是面试的题目(一), 下一篇:经典面试题(PHP基础型III)附答案 PHP已经赋予答案:
12、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须?(1分)
在大部分语言里,双引号是字符串,单引号是字符。但是在PHP里,字符串的表现形式有3种。即:
单引号
双引号
定界符(heredoc syntax)
看见了吧,单引号居然可以用来表示字符串。那么如果我想表示单引号怎么办?和大多数语言一样,使用转义符号吧。即反斜线“”.那么使用单引号和双引号有什么区别呢?我的观点是没有多大区别。唯一的区别就是双引号可以应用更多的转义符。
让我们定界符吧。它的语法是“<<<”。用法是在其后提供一个标识符,然后在标识符后提供字符串,再在字符串后提供此标识符来结尾。例如:
$str = <<
Hello, this is an example for HEREDOC Syntax.
Please attention to it.
EOD;
echo $str;
?>注意,这里的提供的标志符是EOD,中间的是字符串。
<<
结束标志必须顶格写,并且要有分号结束
13、谈谈asp,php,jsp的优缺点(1分)--(具体请自己搜索)
14、谈谈对mvc的认识(1分)
MVC(Model/View/Controller)模式包括三类对象。Model是应用对象,View是它在屏幕上的表示,
Controller定义用户界面对用户输入的响应方式。
模型-视图-控制器(MVC)是80年代Smalltalk-80出现的一种软件设计模式,现在已经被广泛的使用。
1)模型(Model)
模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑.
2)视图(View)
视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。
3)控制器(controller)
控制器工作就是根据用户的输入,控制用户界面数据显示和更新model对象状态。
-------------------------------------------------------------------
15、写出发贴数最多的十个人名字的SQL,利用下表:members(id,username,posts,pass,email)(2分)
select members.username
from members
order by posts DESC
limit 10
16. 请说明php中传值与传引用的区别。什么时候传值什么时候传引用?(2分)
按值传递:函数范围内对值的任何改变在函数外部都会被忽略
按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改 PHPma
优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。
按引用传递则不需要复制值,对于性能提高很有好处。
17. 在PHP中error_reporting这个函数有什么作用? (1分)
用来配置错误信息回报的等级
18. 请写一个函数验证电子邮件的格式是否正确 (2分)
//if the email address is valid, return true,else return false
function validateEmail($email)
{
if(eregi('^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$',$email) ){
return true;
}else{
return false;
}
}
19. 简述如何得到当前执行脚本路径,包括所得到参数。(2分)
echo $_SERVER['SCRIPT_FILENAME'].“?”.$_SERVER['QUERY_STRING'];
20.如何修改SESSION的生存时间. (1分)
setcookie()
或
session_set_cookie_params($lifeTime)
--------------------------------------------------------------------
21、JS表单弹出对话框函数是?获得输入焦点函数是? (2分)
alert(),prompt(),confirm()
focus()
22、JS的转向函数是?怎么引入一个外部JS文件?(2分)
window.location.href
23、foo()和@foo()之间有什么区别?(1分)
PHP 支持一个错误控制运算符:@。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。
注意: @ 运算符只对表达式有效。对新手来说一个简单的规则就是:如果能从某处得到值,就能在它前面加上 @ 运算符。例如,可以把它放在变量,函数和include()调用,常量,等等之前。不能把它放在函数或类的定义之前,也不能用于条件结构例如 if 和 foreach 等。
24、如何声明一个名为”myclass”的没有方法和属性的类? (1分)
class myclass{};
25、如何实例化一个名为”myclass”的对象?(1分)
$newmyclass = new myclass();
26、你如何访问和设置一个类的属性? (2分)
通过-〉
$newmyclass = new myclass();
$temp=$newmyclass->testvalue;
$newmyclass->testvalue=“a”;
27、mysql_fetch_row() 和mysql_fetch_array之间有什么区别? (1分)
mysql_fetch_row -- 从结果集中取得一行作为枚举数组
mysql_fetch_array -- 从结果集中取得一行作为关联数组,或数字数组,或二者兼有
--------------------------------------------------------------------
28、GD库是做什么用的? (1分)
GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。
在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。
29、指出一些在PHP输入一段HTML代码的办法。(1分)
print(“
”);
echo “
”;
30、下面哪个函数可以打开一个文件,以对文件进行读和写操作?(1分)(c)
(a) fget() (b) file_open() (c) fopen() (d) open_file()
31、下面哪个选项没有将 john 添加到users 数组中? (1分) (b)(c)(d)
(a) $users[] = ‘john’;
(b) array_add($users,’john’);//这个选项不敢确定,但是测试着没有这个函数
(c) array_push($users,‘john’);
(d) $users ||= ‘john’;
32、下面的程序会输入是否?(1分)
$num = 10;
function multiply(){
$num = $num * 10;
}
multiply();
echo $num;
?>
否,局部变量
33、使用php写一段简单查询,查出所有姓名为“张三”的内容并打印出来 (2分)
表名User
Name 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);
$result=mysql_query(“select * from User where Name='张三'”);
while($row=mysql_fetch_array($result))
{
echo $row['Name'].$row['Tel'].$row['Content'].$row['Date'];
echo “
”;
}
34、如何使用下面的类,并解释下面什么意思?(3)
class test{
function Get_test($num){
$num=md5(md5($num).“En”);
return $num;
}
}
双重md5加密
$testObject = new test();
$encryption = $testObject->Get_test(“xiaotian_ls”);
经典面试题(PHP基础型III)PHP来源:本站编辑 作者:phpma 时间:2009-02-13 Tag:经典面试题(PHP基础型III)PHP 点击: 31 求职与招聘 往往少不了面试与笔试,作为一个php程序员、多多少少都会有类似的经历……以下是本人收集并整理的PHP面试题目,希望对同行们有所帮助,找到一份合适的php开发工作!(共三节)
以下是经典面试题(PHP基础型III)附答案 PHP已经赋予答案:
35、写出 SQL语句的格式 : 插入 ,更新 ,删除 (4分)
表名User
Name Tel Content Date
张三 13333663366 大专毕业 2006-10-11
张三 13612312331 本科毕业 2006-10-15
张四 021-55665566 中专毕业 2006-10-15
(a) 有一新记录(小王 13254748547 高中毕业 -05-06)请用SQL语句新增至表中
INSERT INTO User('Name','Tel','Content','Date') VALUES('小王','13254748547','高中毕业','2007-05-06')
(b) 请用sql语句把张三的时间更新成为当前系统时间
UPDATE User SET Date=DATE_FORMAT(NOW(),'%Y-%m-%d') WHERE Name='张三'
(c) 请写出删除名为张四的全部记录
DELETE FROM User WHERE Name='张四'
36、请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别(2分)
char 固定长度的字符,不足的长度用空格补上;varchar好象没有这个类型,
37、MySQ自增类型(通常为表ID字段)必需将其设为(?)字段(1分)
38、写出以下程序的输出结果 (1分)
$b=201;
$c=40;
$a=$b>$c?4:5;
echo $a;
?>
答案:4
39、检测一个变量是否有设置的函数是否?是否为空的函数是?(2分)
isset();empty();
-----------------------------------------------------------------------------
40、取得查询结果集总数的函数是?(1分)
mysql_fetch_array();
41、$arr = array('james', 'tom', 'symfony'); 请打印出第一个元素的值 (1分)
echo $arr['0'];
42、请将41题的数组的值用','号分隔并合并成字串输出(1分)
$arr_im = implode(“,”,$arr);
print_r($arr_im);
43、$a = 'abcdef'; 请取出$a的值并打印出第一个字母(1分)
$a = 'abcdef';
echo $a;
$a_exp = substr($a,0,1);
echo “
”;
echo $a_exp;
44、PHP可以和sql server/oracle等数据库连接吗?(1分)
当然可以
45、请写出PHP5权限控制修饰符(3分)
PHP5引入了访问修饰,被放在属性和方法声明的前面用以控制它们的可见性。PHP5中支持以下三种不同的访问修饰:
1、默认的是public(公共),即当你没有为属性和方法指定访问修饰时就默认为public的。而这些public的项目在类内类外都可以访问。
2、private(私有)访问修饰,意味着被修饰的项只能在类中被访问。如果你没使用__get()和__set(),就最好给每个属性都加上private修饰。也可以给方法加private修饰,例如一些只在类中才用到的函数。private修饰的项不能被继承(更多详细内容会在本章后续部分提到)。
3、protected(保护)修饰的项能在类及其子类中访问。同样更多详细内容会在本章后续部分提到。现在暂时可以把protected看成界于public和private之间的修饰。
46、请写出php5的构造函数和析构函数(2分)
如果你在一个类中声明一个函数,命名为__construct,这个函数将被当成是一个构造函数并在建立一个对象实例时被执行. 清楚地说,__是两个下划线. 就像其它任何函数一样,构造函数可能有参数或者默认值. 你可以定义一个类来建立一个对象并将其属性全放在一个语句(statement)中.
你也可以定义一个名为__destruct的函数,PHP将在对象被销毁前调用这个函数. 它称为析构函数.
------------------------------------------------------------------------------
47、以下请用PHPMYADMIN完成--(没有测试)
(一)创建新闻发布系统,表名为message有如下字段 (3分)
id 文章id
title 文章标题
content 文章内容
category_id 文章分类id
hits 点击量
(二)同样上述新闻发布系统:表comment记录用户回复内容,字段如下 (4分)
comment_id 回复id
id 文章id,关联message表中的id
comment_content 回复内容
现通过查询数据库需要得到以下格式的文章标题列表,并按照回复数量排序,回复最高的排在最前面
文章id 文章标题 点击量 回复数量
用一个SQL语句完成上述查询,如果文章没有回复则回复数量显示为0
select message.id,message.title, message.hits sum(select count(0) from comment where message.id=comment.id) as comsums from message comment order by comsums;
(三)上述内容管理系统,表category保存分类信息,字段如下 (3分)
category_id int(4) not null auto_increment;
categroy_name var40) not null;
用户输入文章时,通过选择下拉菜单选定文章分类
写出如何实现这个下拉菜单
//以下使用的adodb
$cnn =& NewADOConnection('mysql');
$cnn -> Connect($db_hostspec, $db_username, $db_password, $db_database);
$cnn -> SetFetchMode(ADODB_FETCH_ASSOC);
if (!$cnn) message(“无法连接数据库 $db_database”);
$sql = “SELECT * FROM `category` WHERE 1;
$rst =& $cnn -> Execute($sql);
if (!$rst) die($cnn -> ErrorMsg());
$arr_categroy = $rst -> GetArray();
[php经典面试题]
篇6:php面试题
PHP是一个基于服务端来创建动态网站的脚本语言,您可以用PHP和HTML生成网站主页。unjs网为您带来php面试题。一起来看看。
大公司的PHP面试题:
1. 禁用COOKIE 后 SEESION 还能用吗?
2. 抓取远程图片到本地,你会用什么函数?
4. 你觉得在pV10W的时候, 同等配置下,LUNIX 比WIN快多少?
5. 简述pOST 和GET传输的最大容量分别是多少?
6. 用最少的代码写一个求3值最大值的函数.
php面试题目:
1、用PHP打印出前一天的时间格式是-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,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编码
function reverse($str)
{
$ret = ”“;
len=mbstrwidth(len=mbstrwidth(str,”GB2312“);
for(i=0;i=0;i< len;len;i++)
{
arr[]=mbsubstr(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(”-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研究室主页: www.phpv.net/,如何得到它的内容?($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 = <
good test
EOD;
20、谈谈asp,php,jsp的优缺点(1分)
asp是需要依赖IIS,是微软开发的语言
php和jsp可以依赖apache或者 nginx等其他服务器
[php面试题]
篇7:唯品会面试
昨天下午收到通知,让今天10点半去唯品会面试。查了一下这公司的情况,觉得应该是家较有规模有信誉的公司,于是便提前5分钟左右到了。填表,等待面试5分钟左右。轮到我时,同样自我介绍、考电脑操作。没问题了,面试官再介绍一下自已公司和职位的工作内容,说到了加班什么的问我有没有关系,自然是说没关系。然后面试官就说我家较远(公车1小时单程),而且学历较高(夜大本科),做统计录入不屈才吗?我也表示不要紧,因为是夜大,其实学到的东西好多时候都派不上用处,我只是为文凭而学的。面试官点点头,说要让领导看看,然后就打发我走了。各位觉得这份工有戏吗?
广州唯品会 信息科技有限公司(NYSE:VIPS)成立于8月,总部设在广州,旗下网站于同年12月8日上线。唯品会定位为“一家专门做特卖的网站”,主营业务为互联网在线销售品牌折扣商品,涵盖名品服饰鞋包、美妆、母婴、居家等各大品类。3月23日,唯品会在美国纽约证券交易所(NYSE)上市。自上市以来,截至12月31日,唯品会已连续十七个季度实现盈利。目前唯品会已成为全球最大的特卖电商,以及中国第三大电商。唯品会在美国零售行业杂志《Stores》联合德勤发布的《全球250强零售商排行榜》中,蝉联“全球增速最快的顶尖零售商”。
唯品会在中国开创了“名牌折扣+限时抢购+正品保障”的创新电商模式,并持续深化为“精选品牌+深度折扣+限时抢购”的正品特卖模式,这一模式被形象地誉为“线上奥特莱斯”。唯品会每天早上10点和晚上8点各准时上线200多个正品品牌特卖专场,以最低至1折的折扣实行3天限时抢购,为消费者带来高性价比的“网上逛街”的购物体验。2011月,中国消费者报社与中国电子商务研究中心联合发布《年中国消费者网络消费洞察报告与网购指南》指出,“在商品品牌、商品品质的消费者认可度方面,唯品会以40.8%排名第一”。
企业简介
模式简介
唯品会(NYSE:VIPS)“一家专门做特卖”的网站,成立于20,在中国开创了“名牌折扣+限时抢购+正品保障”的创新电商模式,并持续深化为“精选品牌+深度折扣+限时抢购”的正品时尚特卖模式,在线销售服饰鞋包、美妆、母婴、居家等各类名品。
唯品会率先在国内开创了特卖这一独特的商业模式,加上其“零库存”的物流管理以及与电子商务的无缝对接模式,唯品会得以在短时间内在电子商务领域生根发芽。
唯品会与知名国内外品牌代理商及厂家合作,向中国消费者提供低价优质、受欢迎的品牌正品。每天数百个品牌授权特卖,商品囊括服饰鞋包、美妆、母婴、居家、3C等。
网站类别
唯品会定位于“一家专门做特卖的网站”,以独特“精选品牌+深度折扣+限时抢购”的正品特卖模式,每天早上10点和晚上8点各准时上线超过200个正品品牌特卖,以最低至1折的折扣实行3天限时抢购,为消费者带来高性价比的“网上逛街”的愉悦购物体验。
唯品会创立之初,即推崇精致优雅的生活理念,倡导时尚唯美的生活格调,主张有品味的生活态度,致力于提升中国乃至全球消费者的时尚品味。
发展规模
唯品会现有45,000名员工,累积合作品牌近20,000多个,其中全网独家合作品牌达2,200多个。
目前,唯品会注册会员3亿;2016年唯品会年订单量2.7亿单,同比增长40%,重复购买率高达80%以上。
公司总部设立在广州荔湾区,占地面积10,000平方米。
2016年,唯品会全球总部大厦在广州最具吸引力的区域海珠区琶洲互联网创新集聚区内奠基,毗邻珠江,占地面积约1.3万平方米,总建筑面积约16万平方米,可容纳超过10,000名员工,总投资额约人民币41亿元,预计竣工并投入使用。
市场表现
唯品会净营收为17亿美元(约106亿人民币),第一季度,公司净营收7.019亿美元(约44亿人民币),同比增长125.9%,连续六个季度实现盈利。在艾瑞咨询发布的“Q1中国B2C购物网站交易规模市场份额”和“2014Q1中国移动购物企业交易规模市场占比”等研究报告中,唯品会与天猫、京东跻身前三,这意味着唯品会“精选+导购”的在线折扣零售模式与天猫集市模式、京东传统B2C模式已组成中国当代B2C电商模式的全新结构。
20唯品会实现全年净营收37.7亿美元(约合235.56亿元人民币),比上一年增长122.4%。根据艾瑞咨询集团发布的《2014年中国网络限时特卖市场研究报告》,唯品会20以38.1%的市场份额领跑中国限时特卖市场。唯品会所代表的线上特卖模式已经成为现今中国三大主流电商业态之一。
实现全年总净营收同比增涨74%至402亿元人民币,年运营利润同比增长148%至20.7亿元人民币,年运营利润率从去年同期的3.6%增长至5.2%。年毛利润同比增长72%至99亿元人民币。唯品会2016年第二季度净营收同比增长49%达134.4亿元人民币,连续15个季度持续盈利,移动端销售占比高达87%,物流自有配送订单占比达90%。在德勤有限公司(德勤全球)发布的《2016年全球零售力量:跨越数字化鸿沟》中,唯品会以-2014零售额复合年增长率320.8%、2014年零售额增长率120.2%的速度,成为全球增速最快的零售商,并跻身全球最顶尖的250家零售商名单。易观智库发布的《中国B2C市场季度监测报告2016年第2季度》以及《中国移动网购市场季度监测报告2016年第2季度》显示,唯品会在中国网络零售B2C市场交易份额、中国移动网购市场交易份额、中国B2C市场服装品类交易份额、中国B2C市场母婴品类交易份额排名中均位居前三。
[唯品会面试]
篇8:php常见面试题
1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量(1)中;而链接到当前页面的URL记录在预定义变量(2)中。
答:echo $_SERVER['PHP_SELF']; echo $_SERVER[”HTTP_REFERER“];
2.执行程序段将输出(3)。
答:0
3.在HTTP 1.0中,状态码 401 的含义是(4);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(5)。
答:(4)未授权 (5) header(”HTTP/1.0 404 Not Found“);
4.数组函数 arsort 的作用是(6);语句 error_reporting(2047)的作用是(7)。
答:(6)对数组进行逆向排序并保持索引关系 (7)All errors and warnings
5.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把标记及其内容都去掉):(9)。
答:/<[^>].*?>.*?>/si
6.以Apache模块的方式安装PHP,在文件http.conf中首先要用语句(10)动态装载PHP模块,
然后再用语句(11)使得Apache把所有扩展名为php的文件都作为PHP脚本处理。
答:(10) LoadModule php5_module ”D:/xampp/apache/bin/php5apache2.dll“
(11) AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml
7.语句 include 和 require 都能把另外一个文件包含到当前文件中,它们的区别是(12);为了避免多次包含同一文件,可以用语句(13)来代替它们。
答:(12) 发生异常时include产生警告require产生致命错误 (13) require_once/include_once()
8.类的属性可以序列化后保存到 session 中,从而以后可以恢复整个类,这要用到的函数是(14)。
答:serialize() /unserialize()
9.一个函数的参数不能是对变量的引用,除非在php.ini中把(15)设为on.
答:allow_call_time_pass_reference
10.SQL 中LEFT JOIN的含义是(16)。
如果 tbl_user记录了学生的姓名(name)和学号(ID),
tbl_score记录了学生(有的学生考试以后被开除了,没有其记录)的学号(ID)和考试成绩(score)以及考试科目(subject),
要想打印出各个学生姓名及对应的的各科总成绩,则可以用SQL语句(17)。
答:(16) 自然左外连接
(17) select name , count(score) as sum_score from tbl_user left join tbl_score on tbl_user.ID=tbl_score.ID group by tbl_user.ID
11..在PHP中,heredoc是一种特殊的字符串,它的结束标志必须(18)。
答:结束标识符所在的行不能包含任何其它字符除”;“
12.用PHP打印出前一天的时间格式是-5-10 22:21:21
答:echo date('Y-m-d H:i:s', strtotime('-1 day'));
13.echo(),print(),print_r()的区别
答:echo是语言结构,无返回值;print功能和echo基本相同,不同的是print是函数,有返回值;print_r是递归打印,用于输出数组对象
14.如何实现字符串翻转?
答:.用strrev函数呗,不准用PHP内置的就自己写:
strrev($str)
{
$len=strlen($str);
$newstr = '';
for($i=$len;$i>=0;$i--)
{
$newstr .= $str{$i};
}
return $newstr;
}
15.实现中文字串截取无乱码的方法。
答:mb_substr()
16.使用php写一段简单查询,查出所有姓名为“张三”的内容并打印出来
表名User
Name Tel Content Date
张三 13333663366 大专毕业 2006-10-11
张三 13612312331 本科毕业 2006-10-15
张四 021-55665566 中专毕业 2006-10-15
答:SELECT Name,Tel,Content,Date FROM User WHERE Name='张三'
17.如何使用下面的类,并解释下面什么意思?
class test
{
Get_test($num)
{
$num=md5(md5($num).”En“);
return $num;
}
}
答:用法:
$get_test = new test();
$result = $get_test->Get_test(2);
将$num变量进行两次md5后返回,第2次的md5中的参数,在第一次md5($num)后多加了En
18.使用五种以上方式获取一个文件的扩展名
要求:dir/upload.image.jpg,找出 .jpg 或者 jpg ,
答:使用五种以上方式获取一个文件的扩展名
1)
get_ext1($file_name)
{
return strrchr($file_name, '.');
}
2)
get_ext2($file_name)
{
return substr($file_name, strrpos($file_name, '.'));
}
3)
get_ext3($file_name)
{
return array_pop(explode('.', $file_name));
}
4)
get_ext4($file_name)
{
$p = pathinfo($file_name);
return $p['extension'];
}
5)
get_ext5($file_name)
{
return strrev(substr(strrev($file_name), 0, strpos(strrev($file_name), '.')));
}
19.如何修改SESSION的生存时间
这个函式库让你处理和显示各式格式的图档,它的另一个常见用途是制作所图档。GD 以外的另一个选择是 ImageMagick,但这个函式库并不内建于 PHP 之中,必须由系统管理员安装在伺服器上答:其实 Session 还提供了一个函数 session_set_cookie_params(); 来设置 Session 的生存期的,该函数必须在 session_start() 函数调用之前调用:
// 保存一天
$lifeTime = 24 * 3600;
session_set_cookie_params($lifeTime);
session_start();
$_SESSION[”admin“] = true;
?>
20. 请写一个函数,实现以下功能: 字符串“open_door” 转换成 “OpenDoor”、”make_by_id” 转换成 ”MakeById”。30.请举例说明在你的开发过程中用什么方法来加快页面的加载速度
A.生成静态HTML
B.生成xml
C.可不用数据库的尽量不用数据库把变量参数存于文本.
D.用ZEND加速
答:
Function test($str){
$arr1=explode('_',$str);
//$arr2=array_walk($arr1,ucwords( ));
$str = implode(' ',$arr1);
return ucwords($str);
}
$aa='open_door';
echo test($aa);
?>
21. 如何用php的环境变量得到一个网页地址的内容?ip地址又要怎样得到?
答:$_SERVSR[‘REQUEST_URI’]
$_SERVER[‘REMOTE_ADDR’]
22.求两个日期的差数,例如-2-5 ~ 2007-3-6 的日期差数
答:(strtotime(‘2007-3-6’)-strtotime(‘2007-2-5’))/3600*24
23.表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。
答:select case when A>B then A else B end,
case when B>C then B else C end
From test
24.请简述项目中优化sql语句执行效率的方法,从哪些方面,sql语句性能如何分析?
答:(1)选择最有效率的表名顺序
(2)WHERE子句中的连接顺序
(3)SELECT子句中避免使用‘*’
(4)用Where子句替换HAVING子句
(5)通过内部函数提高SQL效率
(6)避免在索引列上使用计算。
(7)提高GROUP BY 语句的效率, 可以通过将不需要的记录在GROUP BY 之前过滤掉。
25.mysql_fetch_row() 和 mysql_fetch_array() 有什么分别?
mysql_fetch_row() 把数据库的一列储存在一个以零为基数的阵列中,第一栏在阵列的索引 0,第二栏在索引 1,如此类推。mysql_fetch_assoc() 把数据库的一列储存在一个关联阵列中,阵列的索引就是栏位名称,例如我的数据库查询送回“first_name”、“last_name”、“email”三个栏位,阵列的索引便是“first_name”、“last_name”和“email”。mysql_fetch_array() 可以同时送回 mysql_fetch_row() 和 mysql_fetch_assoc() 的值。
26.下面的代码用来做什么?请解释。
$date='08/26/';print ereg_replace(”([0-9]+)/([0-9]+)/([0-9]+)“,”2/1/3“,$date);
这是把一个日期从 MM/DD/YYYY 的格式转为 DD/MM/YYYY 格式。我的一个好朋友告诉我可以把这个正规表达式拆解为以下的语句,对于如此简单的表示是来说其实无须拆解,纯粹为了解说的方便:
// 对应一个或更多 0-9,后面紧随一个斜号$regExpression = ”([0-9]+)/“;// 应一个或更多 0-9,后面紧随另一个斜号$regExpression .= ”([0-9]+)/“;// 再次对应一个或更多 0-9$regExpression .= ”([0-9]+)“;至于 2/1/3 则是用来对应括号,第一个括号对的是月份,
27.GD 函式库用来做什么?
答:这个函式库让你处理和显示各式格式的图档,它的另一个常见用途是制作所图档。GD 以外的另一个选择是 ImageMagick,但这个函式库并不内建于 PHP 之中,必须由系统管理员安装在伺服器上
28.请举例说明在你的开发过程中用什么方法来加快页面的加载速度
答:要用到服务器资源时才打开,及时关闭服务器资源,数据库添加索引,页面可生成静态,图片等大文件单独服务器。使用代码优化工具啦
29.防止SQL注射漏洞一般用__addslashes___函数。
30.PHP中传值和传引用、传地址的区别是什么?
答:传值是把实参的值赋值给行参 那么对行参的修改,不会影响实参的值
传地址 是传值的一种特殊方式,只是他传递的是地址,不是普通的如int 那么传地址以后,实参和行参都指向同一个对象
31。如何通过javascript判断一个窗口是否已经被屏蔽
答:获取open()的返回值,如果是null,就是屏蔽了
33.对于大流量的网站,您采用什么样的方法来解决访问量问题
答:首先,确认服务器硬件是否足够支持当前的流量
其次,优化数据库访问。
第三,禁止外部的盗链。
第四,控制大文件的下载。
第五,使用不同主机分流主要流量
第六,使用流量分析统计软件
[php常见面试题]
篇9:php常用面试题及答案
1、谈对mvc的认识?
答:由模型(Model),视图(View),控制器(Controller)完成的应用程序
由模型发出要实现的功能到控制器,控制器接收组织功能传递给视图;
2、写出发贴数最多的十个人名字的SQL,利用下表:members(id,username,posts,pass,email)
答:SELECT * FROM `members` ORDER BY posts DESC limit 0,10;
3、GD库是做什么用的?
答:gd库提供了一系列用来处理图片的功能,使用GD库可以处理图片,或者生成图片。
在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。
4、请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么别?
答:int是数字类型,char固定长度字符串,varchar实际长度字符串,datetime日期时间型,text文本字符串
char的场地固定为创建表设置的长度,varchar为可变长度的字符
5、以下程序的输出结果?
$b=201;
$c=40;
$a=$b>$c?4:5;
echo $a;
?>
答:4
6、检测一个变量是否有设置的函数是?是否为空的函数是?
答:isset($str),empty($str);
7、得查询结果集总数的函数是?
答:mysql_num_rows($result);
8、$arr = array(‘james’, ‘tom’, ‘symfony’); 请打印出第一个元素的值?
答:echo $arr[0];
9、===”是什么?试举一个“==”是真但“===”是假的例子。
“===”是既可以返回布尔值“假”,也可以返回一个不是布尔值但却可以赋与“假”值的函式,strpos() 和 strrpos() 便是其中两个例子。
if (strpos(”abc“, ”a“) == true){ // 这部分永不会被执行,因为 ”a“ 的位置是 0,换算成布尔值“假”}if (strpos(”abc“, ”a“) === true){ // 这部份会被执行,因为“===”保证函式 strpos() 的送回值不会换算成布尔值.}
10、以下程序的输出结果
$str=“cd”;
$$str=“hotdog”;
$$str.=“ok”;
echo $cd;
?>
答案:hotdogok
11、给你三个数,写程序求出其最大值。
$var1=1;
$var2=7;
$var3=8;
$max=$var1>$var2?$var1:$var2;
$max=$max>$var3?$max:$var3;
echo $max;
12、将一个选择2号选项的ip为127.0.0.1的用户在当前时间的投票记录到数据库的SQL
答:insert into poll (ip,time,iid) values('127.0.0.1',now(),2);
13、个函数验证电子邮件的格式是否正确 ?
答: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);
}
14、表 menu(mainmenu,submenu,url),请用递归法写出一树形菜单,将所有的menu列出来
function GenerateMenu($id=0,$str=”“)
{
$result=mysql_query(”select mainmenu,url,submenu from menu where mainmenu=$id“);
while($row=mysql_fetch_array($result))
{
echo $str.$row[”url“].”
“;
GenerateMenu($row[”submenu“],$str.”--“);
}
mysql_free_result($result);
}
$link=mysql_connect(”localhost“,”root“,”“);
mysql_select_db(”phpinterview“);
GenerateMenu();
mysql_close($link)
?>
15、PHP可以和sql server/oracle等数据库连接吗?
答:可以
16、写出PHP5权限控制修饰符?
答:public(公共),private(私用),protected(继承)
17、请写出php5的构造函数和析构函数?
答: 构造函数:官方称自定义函数
析构函数:垃圾回收函数(__destruct)
18、表单中 get与post提交方法的区别?
答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息.
19、session与cookie的区别?
答:session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放
cookie:用来存储连续L一个面时所使用,是存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的。
两者都可通过时间来设置时间长短
20、用PHP打印出前一天的时间格式是-7-3 12:28:21?
答:echo date(‘Y-m-d H:i:s’, strtotime(‘-1 days’));
21、e2ho(),print(),print_r()的区别?
答:echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)
print() 只能打印出简单类型变量的值(如int,string)
print_r() 可以打印出复杂类型变量的值(如数组,对象)
echo 输出一个或者多个字符串
22、能够使HTML和PHP分离开使用的模板?
答:Smarty, TinyButStrong,XTemplate, Savant,Template Lite, Dwoo, phemplate
23、哪些工具进行版本控制?
答:cvs,svn,vss;
24、如何实现字符串翻转?
答:echo strrev($a); //strrev ― 颠倒字符串
25、优化查询语句?
a.最好在相同字段进行比较操作,在建立好的索引字段上尽量减少函数操作
例子1:
SELECT * FROM order WHERE YEAR(orderDate)<;(慢)
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“;
26、对于大流量的网站,您采用什么样的方法来解决访问量问题?
答:确认服务器硬件是否足够支持当前的流量,数据库读写分离,优化数据表,
程序功能规则,禁止外部的盗链,控制大文件的下载,使用不同主机分流主要流量
27、如何修改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);
28、有一个网页地址, 比如PHP开发资源网主页: www.php100.com/,如何得到它的内容?
答:方法1(对于PHP5及更高版本):
$readcontents = fopen(“www.php100.com/”, “rb”);
$contents = stream_get_contents($readcontents);// stream_get_contents 取得字符串赋值给$contents
fclose($readcontents);
echo $contents;
方法2:
echo file_get_contents(“www.php100.com/”);
// file_get_contents() 函数把整个文件读入一个字符串中。
29、在HTTP 1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用 header 函数,其语句为?
答:状态401代表未被授权,header(“Location:www.xxx.php”);
30、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须?
答:heredoc的语法是用”<<<”加上自己定义成对的标签,在标签范围鹊奈淖质游一个字串
例子:
$str = <<
my name is Jiang Qihui!
SHOW;
31、foo()和@foo()之间有什么区别?
答:@foo()控制错误输出
32、如何声明一个名为”myclass”的没有方法和属性的类?
答:class myclass{ }
33、如何实例化一个名为”myclass”的对象?
答:new myclass()
34、你如何访问和设置一个类的属性?
答:$object = new myclass();
$newstr = $object->test;
$object->test = “info”;
35、mysql_fetch_row() 和mysql_fetch_array之间有什么区别?
答:mysql_fetch_row是从结果集取出1行数组,作为枚举
mysql_fetch_array是从结果集取出一行数组作为关联数组,或数字数组,两者兼得
36、下面哪个函数可以打开一个文件,以对文件进行读和写操作?
(a) fget() (b) file_open() (c) fopen() (d) open_file()
答:c
37、下面的程序会输入是否?
$num = 10;
function multiply(){
$num = $num * 10;
}
multiply();
echo $num;
?>
否,局部变量
38、JS表单弹出对话框函数是?获得输入焦点函数是?
答:弹出对话框: alert(),prompt(),confirm()
获得输入焦点 focus()
39、JS的转向函数是?怎么引入一个外部JS文件?
答:window.location.href;
40、$a = ‘abcdef’; 请取出$a的值并打印出第一个字母?
答:echo $a{0} 或 echo substr($a,0,1)
41、如何使用下面的类,并解释下面什么意思?
class test{
function Get_test($num){
$num=md5(md5($num).”En”);
return $num;
} }
双重md5加密
$testObject = new test();
$encryption = $testObject->Get_test(“xiaotian_ls”);
42、请举例说明在你的开发过程中用什么方法来加快页面的加载速
答:要用到服务器资源时才打开,及时关闭服务器资源,数据库添加索引,页面可生成静态,图片等大文件单独服务器。使用代码优化工具啦
43、写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把script标记及其内容都去掉):
$script=“以下内容不显示:alert(‘cc’);”;
echo preg_replace(“/].*?>.*?/si”, “替换内容”, $script);
?>
44、以Apache模块的方式安装PHP,在文件http.conf中首先要用语句____动态装载PHP模块,然后再用语句____使得Apache把所有扩展名为php的文件都作为PHP脚本处理。
答:LoadModule
php5_module
“c:/php/php5apache2.dll”;AddType application/x-httpd-php .php
45、sort()、asort()、和 ksort() 有什么分别?它们分别在什么情况下使用?
sort()
根据阵列中元素的值,以英文字母顺序排序,索引键会由 0 到 n-1 重新编号。主要是当阵列索引键的值无关疼痒时用来把阵列排序。
asort()
与 sort() 一样把阵列的元素按英文字母顺序来排列,不同的是所有索引键都获得保留,特别适合替联想阵列排序。
ksort()
根据阵列中索引键的值,以英文字母顺序排序,特别适合用于希望把索引键排序的联想阵列。
46、用PHP写出显示客户端IP与服务器IP的代码?
答:打印客户端IP:echo $_SERVER[‘REMOTE_ADDR’]; 或者: getenv('REMOTE_ADDR');//getenv取得开发环境变量
打印服务器IP:echo gethostbyname(“www.bolaiwu.com”) // gethostbyname取得IP地址函数
47、语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们?
答:require->require是无条件包含也就是如果一个流程里加入require,无论条件成立与否都会先执行require
include->include有返回值,而require没有(可能因为如此require的速度比include快)
注意:包含文件不存在或者语法错误的时候require是致命的,include不是
48、PHP的意思?
答:PHP是一个基于服务端来创建动态网站的脚本语言,您可以用PHP和HTML生成网站主页
49、谈谈asp,php,jsp的优缺点?
答:ASP全名Active Server Pages,是一个WEB服务器端的开发环境, 利用它可以产生和运行动态的、交互的、高性能的WEB服务应用程序。ASP采用脚本语言VB Script(Java script)作为自己的开发语言。
PHP是一种跨平台的服务器端的嵌入式脚本语言. 它大量地借用C,Java和Perl语言的语法, 并耦合PHP自己的特性,使WEB开发者能够快速地写出动态生成页面.它支持目前绝大多数数据库。还有一点,PHP是完全免费的,不用花钱,你可以从PHP官方站点(www.php.net)自由下载。而且你可以不受限制地获得源码,甚至可以从中加进你自己需要的特色。
JSP 是Sun公司推出的新一代站点开发语言,他完全解决了目前ASP,PHP的一个通病--脚本级执行(据说PHP4 也已经在Zend 的支持下,实现编译运行).Sun 公司借助自己在Java 上的不凡造诣,将Java 从Java 应用程序 和 Java Applet 之外,又有新的硕果,就是Jsp--Java Server Page。Jsp 可以在Serverlet和JavaBean的支持下,完成功能强大的站点程序。
三者都提供在 HTML 代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。但JSP代码被编译成 Servlet 并由 Java 虚拟机解释执行,这种编译操作仅在对 JSP 页面的第一次请求时发生。在 ASP 、PHP、JSP 环境下,HTML 代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的 HTML 页面只依赖于 Web 服务器,而 ASP 、PHP、JSP 页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到 HTML 代码中,然后一起发送给浏览器。 ASP 、PHP、 JSP三者都是面向 Web 服务器的技术,客户端浏览器不需要任何附加的软件支持。
50、 优化MYSQL数据库的方法
(1).选取最适用的字段属性,应该尽量把字段设置为NOT NULL,这样在将来执行查询的时候,数据库不用去比较NULL值。
(2).使用连接(JOIN)来代替子查询(Sub-Queries)
(3).尽量少使用 LIKE 关键字和通配符
篇10:PHP面试题集
PHP面试题集
1.解释一下PHP里面的三元运算符
举例说明:a= b==c? 1 : 2 ,若b==c,则a的值为1 否则a的值为2
2.如何知道有几个参数传入到了一个function?
func_num_args 函数返回传入的参数的个数,
3.PHP里面所有的对象是passed by value (值传递)还是 passed by reference(引用传递)?
PHP里面所有的对象都是值传递,
4.如何调用父类的.构造方法?
使用parent::constructor($value)
5._sleep和_wakeup有什么特殊含义?
_sleep返回需要被保存的变量的数组,而_wakeup则是取得这些需要被保存的变量
篇11:关于精选php面试题及答案
精选php面试题及答案
一、基础题
1. 写出如下程序的输出结果
$str2 = false;
echo $str1==$str2 ? 相等 : 不相等;
$str3 = ;
$str4 = 0;
echo $str3==$str4 ? 相等 : 不相等;
$str5 = 0;
$str6 = 0;
echo $str5===$str6 ? 相等 : 不相等;?>
2. 写出如下程序的输出结果
$a2 = false;
$a3 = 0;
$a4 = ;
$a5 = 0;
$a6 = null;
$a7 = array();
$a8 = array(array());
echo empty($a1) ? true : false;
echo empty($a2) ? true : false;
echo empty($a3) ? true : false;
echo empty($a4) ? true : false;
echo empty($a5) ? true : false;
echo empty($a6) ? true : false;
echo empty($a7) ? true : false;
echo empty($a8) ? true : false;?>
3. 写出如下程序的输出结果
$abc = & $test;
unset($test);
echo $abc;?>
4. 写出如下程序的输出结果
function get_count(){
static $count = 0;
return $count++;
}
echo $count;
++$count;
echo get_count();
echo get_count();?>
5. 写出如下程序的输出结果
$var2 = 1;
function get_value(){
global $var2;
$var1 = 0;
return $var2++;
}
get_value();
echo $var1;
echo $var2;?>
6. 写出如下程序的输出结果
unset($arr[0]);
}
$arr1 = array(1, 2);
$arr2 = array(1, 2);
get_arr(&$arr1);
get_arr($arr2);
echo count($arr1);
echo count($arr2);?>
7. 使用五种以上方式获取一个文件的扩展名
要求:dir/upload.image.jpg,找出 .jpg 或者 jpg ,
必须使用PHP自带的处理函数进行处理,方法不能明显重复,可以封装成函数,比如 get_ext1($file_name), get_ext2($file_name)
二、算法题
1. 使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组
2. 使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组
3. 写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数【答案】
(以下答案不一定是最好的,只是一个简单的参考)
1.常用php面试题及答案
2.php常用面试题及答案
3.PHP面试题汇总
4.优秀php高级工程师面试题及答案
5.百度PHP面试题
6.百度php面试题目
7.腾讯php面试题
8.提问得最多的PHP面试题
9.基础php面试题
10.百度php面试题
篇12:php初级面试题
一. 基本知识点
1.1 HTTP协议中几个状态码的含义:503 500 401 403 404 200 301 302。。。
200 : 请求成功,请求的数据随之返回。
301 : 永久性重定向。
302 : 暂时行重定向。
401 : 当前请求需要用户验证。
403 : 服务器拒绝执行请求,即没有权限。
404 : 请求失败,请求的数据在服务器上未发现。
500 : 服务器错误。一般服务器端程序执行错误。
503 : 服务器临时维护或过载。这个状态时临时性的。
1.2 Include require include_once require_once 的区别.
处理失败方式不同:
require 失败时会产生一个致命级别错误,并停止程序运行。
include 失败时只产生一个警告级别错误,程序继续运行。
include_once/require_once和include/require 处理错误方式一样,
唯一区别在于当所包含的文件代码已经存在时候,不在包含。
1.3 (mysql)请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别;
int : 数值类型
char : 固定长度字符串类型
varchar : 可变长度字符串类型
datetime : 时期时间类型
text : 文本类型
varchar和char有什么区别:
a. char 长度是固定的,不管你存储的数据是多少他都会都固定的长度。
而varchar则处可变长度但他要在总长度上加1字符,这个用来存储位置。
b. char 固定长度,所以在处理速度上要比varchar快速很多,但是浪费存储空间,
所以对存储不大,但在速度上有要求的可以使用char类型,反之可以用varchar类型来实例。
1.4 error_reporting 等调试函数使用
error_reporting() 函数能够在运行时设置php.ini中 error_reporting 指令。
所以可以再程序中随时调节显示的错误级别。
使用此函数时 display_errors必须是打开状态。
1.5 写代码来解决多进程/线程同时读写一个文件的问题。
PHP是不支持多线程的,可以使用php的flock加锁函数实现。
$fp = fopen(“/tmp/lock.txt”, “w+”);
if (flock($fp, LOCK_EX)) { // 进行排它型锁定
fwrite($fp, “Write something here ”);
flock($fp, LOCK_UN); // 释放锁定
} else {
echo “Couldn't lock the file !”;
}
fclose($fp);
1.6 写一段上传文件的代码。
upload.html
Send this file:
upload.php
$uploads_dir = '/uploads';
foreach ($_FILES[“error”] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES[“tmp_name”][$key];
$name = $_FILES[“name”][$key];
move_uploaded_file($tmp_name, “$uploads_dir/$name”);
}
}
1.7 Mysql 的存储引擎,myisam和innodb的区别。
a. MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持.
b. MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快.
c. InnoDB不支持FULLTEXT类型的索引.
d. InnoDB 中不保存表的具体行数,也就是说,
执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,
但是MyISAM只要简单的读出保存好的行数即可.
e. 对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引。
f. DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。
g. LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,
但是对于使用的额外的InnoDB特性(例如外键)的表不适用.
h. MyISAM支持表锁,InnoDB支持行锁。
二. web 架构,安全,项目经验
2.1 MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?
a. 设计良好的数据库结构,允许部分数据冗余,尽量避免join查询,提高效率。
b. 选择合适的表字段数据类型和存储引擎,适当的添加索引。
c. mysql库主从读写分离。
d. 找规律分表,减少单表中的数据量提高查询速度。
e。添加缓存机制,比如memcached,apc等。
f. 不经常改动的页面,生成静态页面。
g. 书写高效率的SQL。比如 SELECT * FROM TABEL 改为 SELECT field_1, field_2, field_3 FROM TABLE.
2.2 对于大流量的网站,您采用什么样的方法来解决各页面访问量统计问题
a. 确认服务器是否能支撑当前访问量。
b. 优化数据库访问。参考2.3
c. 禁止外部访问链接(盗链), 比如图片盗链。
d. 控制文件下载。
e. 使用不同主机分流。
f. 使用浏览统计软件,了解访问量,有针对性的进行优化。
2.3 写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把标记及其内容都去掉):(9)。
答:/<[^>].*?>.*?>/si
2.4 用PHP打印出前一天的时间格式是2006-5-10 22:21:21
答:echo date('Y-m-d H:i:s', strtotime('-1 day'));
2.5 echo(),print(),print_r()的区别
答:echo是语言结构,无返回值;print功能和echo基本相同,不同的是print是函数,有返回值;print_r是递归打印,用于输出数组对象
2.6 如何实现字符串翻转?
答:.用strrev函数呗,不准用PHP内置的就自己写:
[php] view plaincopy
strrev($str)
{
$len=strlen($str);
$newstr = '';
for($i=$len;$i>=0;$i--)
{
$newstr .= $str{$i};
}
return $newstr;
}
2.7 实现中文字串截取无乱码的方法。
答:mb_substr()
2.8 如何用php的环境变量得到一个网页地址的内容?ip地址又要怎样得到?
答:$_SERVSR[‘REQUEST_URI’] , $_SERVER[‘REMOTE_ADDR’]
2.9 求两个日期的差数,例如2007-2-5 ~ 2007-3-6 的日期差数
答:(strtotime(‘2007-3-6’)-strtotime(‘2007-2-5’))/3600*24
2.10 如何通过javascript判断一个窗口是否已经被屏蔽
答:获取open()的返回值,如果是null,就是屏蔽了
[php初级面试题]
★ 唯品会商业计划书
★ 简历和面试的技巧
★ 融资中国报告发布
★ 京东运营年终总结

【唯品会php面试题(精选12篇)】相关文章:
双十一快递员个人先进总结2022-09-27
双十一快递做哪些准备工作2023-03-12
李静经典语录2022-12-11
“互联网+服装”的成功转型2022-05-25
电商运营主管有什么岗位职责2023-03-18
同意设立管委会批复2023-07-17
成功人物小时候的故事3个2024-04-03
校园快递用户调研报告2022-04-29
渠道运营专员的职责概述2022-05-13
门槛不高、失败不少:保健品专卖店为何容易夭折?2023-06-22