PHP程序员测试题及答案
1.表单中 get与post提交方法的区别?
答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息.
2.session与cookie的区别?
答:session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放
cookie:用来存储连续訪問一个頁面时所使用,是存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的。
两者都可通过时间来设置时间长短
3.数据库中的事务是什么?
答:事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作完成,
事务则提交,其修改将作用于所有其他数据库进程。如果一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。
简述题:
1、用PHP打印出前一天的时间格式是2006-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
4、使用哪些工具进行版本控制?(1分)
答:cvs,svn,vss;
5、如何实现字符串翻转?(3分)
答:echo strrev($a);
6、优化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) 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";
8、PHP的意思(送1分)
答:PHP是一个基于服务端来创建动态网站的脚本语言,您可以用PHP和HTML生成网站主页
9、MYSQL取得当前时间的函数是?,格式化日期的函数是(2分)
答:now(),date()
10、实现中文字串截取无乱码的方法。(3分)
答: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、您是否用过模板引擎? 如果有您用的模板引擎的名字是?(1分)
答:用过,smarty
13、请简单阐述您最得意的开发之作(4分)
答:信息分类
14、对于大流量的网站,您采用什么样的方法来解决访问量问题?(4分)
答:确认服务器硬件是否足够支持当前的流量,数据库读写分离,优化数据表,
程序功能规则,禁止外部的盗链,控制大文件的下载,使用不同主机分流主要流量
15、用PHP写出显示客户端IP与服务器IP的代码1分)
答:打印客户端IP:echo $_SERVER[‘REMOTE_ADDR’]; 或者: getenv('REMOTE_ADDR');
打印服务器IP:echo gethostbyname("www.bolaiwu.com")
16、语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们? (2分)
答:require->require是无条件包含也就是如果一个流程里加入require,无论条件成立与否都会先执行require
include->include有返回值,而require没有(可能因为如此require的速度比include快)
注意:包含文件不存在或者语法错误的时候require是致命的,include不是
17、如何修改SESSION的生存时间(1分).
答:方法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);
转载于:https://www.cnblogs.com/xinyuyuanm/archive/2013/04/16/3024875.html
PHP程序员测试题及答案相关推荐
- 2006上半年程序员级试题答案
2006上半年程序员级试题答案 上午(每空1分) (1) A (16) C (31) A (46) D (61) C (2) D (17) C (32) C (47) B (62) A (3) D ( ...
- 《Android移动应用基础教程》(Android Studio)(第二版)黑马程序员 课后习题答案
<Android移动应用基础教程>(Android Studio)(第二版)黑马程序员 课后习题答案 目录 第1章 Android基础入门 第2章 Android常见界面布局 第3章 An ...
- 这些题目,据说只有程序员才懂得答案?
0.据说最近流行答题,先来一道热热身. 1.下面这道题的答案显而易见,不会的自动罚站. 2.来一道简单的算术题,你的答案是什么? 3.一道程序员的面试题,请写出你认为的答案. 4.B站的校招面试题,请 ...
- 百战程序员试题与答案(仅供参考)
JAVA基础篇 1.你学习编程的目的是什么?学习编程最快的办法是什么? 答案:我觉得多敲代码,多思考学的能快一点 2.程序员的职业规划是什么?我怎么能拿到10万年薪,30万年薪,50万年薪? 答案:努 ...
- 程序员上网搜答案被HR吐槽人品差,网友:你们公司是断网开发吗?
在面试过程中,如果面试官给你一份试卷让你做,在没提前说明是开卷还是闭卷的情况下,是应该老实作答?还是利用工具高效完成答题?就有一名互联网行业的HR吐槽过来面试的程序员"作弊",称: ...
- Python程序员难招人?月入30K程序员告诉你答案
现在程序员的现状是什么样的?程序员有很多,好的Python程序员还是供不应求的.Python开发的工资一般多少?一般而言,Python程序员的收入水平不低.在一线城市,程序员的平均收入应该都能达到该市 ...
- 尚学堂百战程序员1573题---答案总结第一章 初识Java
第一章 初识Java 1. 你学习编程的目的是什么?学习编程最快的办法是什么? 答:我觉得的我喜欢计算机,我认为计算机是一个很神奇的东西,所以我要学计算机专业,同时,我认为学计算机学编程是一个比较容易 ...
- Microsoft程序员测试题
原创:onefi http://www.frontfree.net/ 2003年6月1日 最近大家在网站上看到不少Microsoft的测试题,引来不少的眼光.我在这里把所有的测试题加以整理,再附 ...
- php程序员试卷无答案,2019年最新PHP经典面试题及答案,PHP程序员必看
1.用最少的代码写一个求3值最大值的函数.function who($a,$b,$c) { return $a > $b ? ($a > $c ? $a : $c) : ($b > ...
最新文章
- SQL SERVER 判断是否存在并删除某个数据库、表、视图、触发器、储存过程、函数
- Winform中使用FastReport的DesignReport时怎样设置Table的size自动调整
- 全国计算机等级考试题库二级C操作题100套(第88套)
- 人类如何感受到四维空间?
- 探求数据仓库关键环节ETL的本质
- 数字反转(信息学奥赛一本通-T1089)
- Git在window的使用(TortoiseGit)之一
- 【mysql union all limit的使用】
- 3d建模电脑配置要求_建模你会一个软zbrush够吃一辈子,你学会了吗?
- php顺序查找法,php二分查找、顺序查找算法
- java.lang.NoClassDefFoundError: org/junit/runner/manipulation/Filter
- 自动驾驶 2-1 第 1 课补充阅读:传感器和计算硬件 -- 上
- 南京大学信号与系统851考研上岸经验分享
- 小米手机系统wifi服务器,手机时间变慢,小米高管科普:3招即可解决
- 电脑网络适配器黄色感叹号,无法连接WiFi?显示适配器黄色小标?
- unity光照烘焙怎么弄
- vue中a标签的href属性的写法
- AutoCAD CSCAD注册命令类型的控制
- 七万字,151张图,通宵整理消息队列核心知识点总结!这次彻底掌握MQ!
- 网页歌单html制作,网页内嵌网易云插件全程(包括生成自己歌单的外链)
热门文章
- 对接接口文档_产品经理所理解的接口
- python 下采样和上采样
- 推荐模块︱apple.Turicreate个性化推荐recommender(五)
- 关于highslide的一点学习
- pip更新升级后Import Error:cannot import name main及pip安装包后出现环境错误拒绝访问...
- Michael Feathers希望消除错误能驱动设计
- 初创公司MindMaze研发情绪反应VR,让VR关怀你的喜怒哀乐
- 在CentOS 6.7部署wordpress博客系统Discuz论坛系统
- 树莓派吃灰记——搭建本地git服务
- ectouch手机商城首页调用指定分类下的商品