php面试题9(看的时候就应该随手截图做笔记的)
php面试题9(看的时候就应该随手截图做笔记的)
一、总结
看的时候就应该随手截图做笔记的
二、php面试题9
一、选择题:
1.下面哪个表达式不能将两个字符串$s1 和$s2 串联成一个单独的字符串?( )
A.$s1+$s2 B.“{$s1}{$s2}” C.$s1.$s2
D.implode(‘’,array($s1,$s2)) E.以上所有的方法都能实现
2.下面的脚本运行以后,$array 数组所包含的值是什么?( )
$array =array(‘1’,’1’);
foreach($arrayas$k=>$v){
$v=2;
}
A.array(‘2’,’2’) B.array(‘1’,’1’)C.array(2,2) D.array(Null,Null)
二、问答题:
1.写出下列代码的输出结果:
functionmyfunc($argument){
echo$argunment+10; //这里多了一个 n 字母,变量为空,就相当于直接 echo10
}
$variable=10;
echo“myfunc($variable)=”.myfunc($variable);
结果:10myfunc(10)=
2.请用尽可能少的语句实现对输出 Email 地址进行验证的功能:
If(!preg_match(‘/^\w+@(\w\.)+(com|cn|net|org|cc)/’,$_POST[‘email’],$arr,)){
Echo ‘邮箱格式不正确’;
}
简述 cookie 和 session 的区别各自的工作机制,存储位置等,简述 cookie 的优缺点。
1) SESSION:存储在服务器端, cookie:存储在客户端
2) 两者都可通过时间来设置时间长短
3) cookie 不安全,考虑安全性还是用 session
4) session 保存到服务器端,如果访问量过大,对服务器性能很影响,应使用 memcache 缓存
session
5) 单个 COOKIE 在客户端限制是 3K,即存放的 cookie 不能超过 3K,SESSION 没有限制
6) 禁止了 COOKIE 后 SESSION 是不能使用的,session 因为存储在服务器端,具体路径在
php.ini 中 session_dir 目录中,是私有的每个用户产生 session 都不同
三、Linux 选择题:
1.cron 后台常驻程序(daemon)用于:crond
A. 负责文件在网络中的共享
B. 管理打印子系统 Managestheprintingsubsystem
C. 跟踪管理系统信息和错误
D. 管理系统日常任务的调度(scheduing)
2.怎么了解您在当前目录下还有多大空间?//du –sh /mnt
A.Usedf
B.Usedu/
C. Use du.
D.Usedf.
3. 有一个备份程序 mybackup,需要在周一至周五下午一点和晚上八点各运行次,下面哪
一条 crontab 的项可以完成这项工作?
A.013,20**1,5mybackup
B.0 13,20 * * 1,2,3,4,5 mybackup
C.*13,20**1,2,3,4,5,mybackup
D.013,201,5**mybackup
4. 下面哪条命令可以把 f1.txt 复制为 f2.txt? //cp rsync
A.cp f1.txt f2.txt
B.catf1.txt|f2.txt
C.catf1.txt|f2.txt
B.copyf1.txt|f2.txt
5. 使用命令可以查看 Linux 的启动信息?
A.mesg–d
B.dmesg
C.cat/etc/mesg
D.cat/var/mesg
6. 在 vi 中退出不保存的命令?
A.:qt
B.:r
C.:wq
D.:q!
四、其他相关技术:
1.如何判断 SQL 语句的运行效率?如何优化一个查询 SQL?
1)desc select * from table;
2)加索引
2.试写出 mysql 数据库优化的一些方法
1)选取最适用的字段属性,尽可能减少定义字段长度,尽量把字段设置 NOT NULL,例如’省
份,性别’,最好设置为 ENUM
(2)使用连接(JOIN)来代替子查询:
(3)建立索引:
(4)使用扩展库 PDO /或者 mysqli 使用预处理 stmt 缓存字段
(5) 优化查询语句最好在相同字段进行比较操作 ,select 查询的时候尽量少用*,用到什么
字段查什么字段在 sql 语句中尽量少用 mysql 的函数,我们在 PHP 端处理好后再交给
mysql
(6) 不要用 like 来查询 这样很不效率,用 Sphinx 全文检索
(7)分区技术
(8)主从数据库
(9)结合 memcache
(10)结合 sphinx 全文检索
1.sql 语句优化(索引优化)
2.表优化
表复制
视图表
分库分表
分区
3.数据库优化和服务器优化
字符集
Mysql 主从
Mysql 集群
3.apache 默认使用进程管理还是线程管理?如何判断并设置最大连接数?
/usr/local/apache2/bin/apachectl –l|grep prefork.c
Prefork.c
Serverlimit 2000
Maxclient 1000
4.简述 smarty 的工作原理,如何对 smarty 进行二次开发?
工作原理:经过处理正则替换把模板中的变量替换成我们要的数据然后输出
开发插件
1)smarty php 引擎 ->tpl 模板->编译文件(php 和 html 混合文件)->静态化文件(html)
5.ajax 技术利用了什么协议?简述 ajax 的工作机制。
<script>
Var aj=new XMLHttpRequest; //第一步产生对象
Aj.open(‘post’,’http://8878.sinaap.com/get.php’); // 第 二 步 确
定发送方式和打开连接
Aj.setRequestHeader(‘Content-type’,’text/html;charset=utf-8’);
//解决了
Aj.setRequestHeader(‘Content-type’,’application/x-www-form-urlencoded’);//第三步解决字符集,或者声明发送类型
Aj.send(‘username=gaoqiin&pass=kkk’) //第四步:发送数据
Aj.onreadystatechange=function(){ //第五步:接收状态值
If(aj.readyState==4){ //第六步判断状态
if(aj.status==200){ //第七步:成功后处理数据
alert(‘成功’)
}
}
}
</script>
6.利用 ajax 开发时,需要考虑浏览器的兼容性么?如果需要,常需要考虑哪些?ajax 开
发常会遇到哪些问题,试举例说明?
需要!
考虑火狐和 IE 的兼容性,因为他们的 ajax 对象不同,所以我们都需要考虑到
应该注意:
在 Microsoft 浏览器上创建 XMLHttpRequest 对象
var xmlHttp = false;
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}
7.利用 ajax 传输数据时,一般默认使用的是什么编码方式?如果出现乱码如何处理?
默认使用 UTF8 编码
出现乱码解决
比如 <script>
Var aj=new XMLHttpRequest;
Aj.open(‘post’,’http://8878.sinaap.com/get.php’);
Aj.setRequestHeader(‘Content-type’,’text/html;charset=utf-8’);
//解决了
Aj.setRequestHeader(‘Content-type’,’application/x-www-form-urlenco
ded’);
Aj.send(‘username=gaoqiin&pass=kkk’)
Aj.onreadystatechange=function(){
If(aj.readyState==4){
if(aj.status==200){
alert(‘成功’)
}
}
}
</script>
Get
Post
Post enctype
基础题:
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-n-d H:i:s', strtotime('-1 day'));
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;
subversion
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) 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 分)
答:mb_substr();
mb_strcut();
11、您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?(1 分)
subversion svn
12、您是否用过模板引擎? 如果有您用的模板引擎的名字是?(1 分)
答:用过,smarty
14、对于大流量的网站,您采用什么样的方法来解决访问量问题?(4 分)
答:确认服务器硬件是否足够支持当前的流量,数据库读写分离,优化数据表,
程序功能规则,禁止外部的盗链,控制大文件的下载,使用不同主机分流主要流量
15、用 PHP 写出显示客户端 IP 与服务器 IP 的代码 1 分)
答:打印客户端 IP:echo $_SERVER[‘REMOTE_ADDR’];
echo $_SERVER[‘SERVER_ADDR’];
16、语句 include 和 require 的区别是什么?为避免多次包含同一文件,可用(?)语句代替
它们? (2 分)
答:require->require 是无条件包含也就是如果一个流程里加入 require,无论条件成立与
否都会先执行 require
include->include 有返回值,而 require 没有(可能因为如此 require 的速度比 include
快)
注意:包含文件不存在或者语法错误的时候 require 是致命的,include 不是
17、如何修改 SESSION 的生存时间(1 分).
答:
<?php
session_start();
// 保存一天
$lifeTime = 24 * 3600;
setcookie(session_name(), session_id(), time() + $lifeTime, "/");
?>
18、有一个网页地址, 比如 PHP 开发资源网主页: http://www.phpres.com/index.html,
如何得到它的内容?($1 分)
答:
echo file_get_contents("http://www.phpres.com/index.html");
19、在 HTTP 1.0 中,状态码 401 的含义是(?);如果返回“找不到文件”的提示,则可用
header 函数,其语句为(?);(2 分)
答:状态 401 代表未被授权,header("Location:www.xxx.php");
js:window.location.href="http://www.baidu.com";
20、在 PHP 中,heredoc 是一种特殊的字符串,它的结束标志必须?(1 分)
答:heredoc 的语法是用"<<<"加上自己定义成对的标签,在标签范围內的文字视为一个字
符串
例子:
$str = <<<SHOW
my name is Jiang Qihui!
SHOW;
21、谈谈 asp,php,jsp 的优缺点(1 分)
答:ASP 全名 Active Server Pages,是一个 WEB 服务器端的开发环境, 利用它可以产生
和运
行动态的、交互的、高性能的 WEB 服务应用程序。ASP 采用脚本语言 VB Script 作为自
己的开发语言。
PHP 是一种跨平台的服务器端的嵌入式脚本语言. 它大量地借用 C,Java 和 Perl 语言
的语法, 并耦合 PHP 自己的特性,使 WEB 开发者能够快速地写出动态生成页面.它支持目前
绝大多数数据库。还有一点,PHP 是完全免费的,不用花钱,你可以从 PHP 官方站点
(http://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 服务器的技术,客户端浏览器不需要任何附加的软件支持。
php面试题9(看的时候就应该随手截图做笔记的)的更多相关文章
- 最新阿里Java技术面试题,看这一文就够了!
金三银四跳槽季即将到来,作为 Java 开发者你开始刷面试题了吗?别急,小编整理了阿里技术面试题,看这一文就够了! 阿里面试题目目录 技术一面(基础面试题目) 技术二面(技术深度.技术原理) 项目实战 ...
- HashMap面试题,看这一篇就够了!
目录 序言 一.JDK7中的HashMap底层实现 1.1 基础知识 1.2 put()方法 1.2.1 特殊key值处理 1.2.2 扩容 1.2.3 如何计算bucket下标? 1.2.4 在目标 ...
- 很多事情就像看A片,看的人觉得很爽,做的人未必。
http://m.jingdianju.com/wzgs/shenghuo/201307185135.html 转载自: 从这个角度上来说,我不太赞成过于关注第一份工作的薪水,更没有必要攀比第一份工作 ...
- Tomcat相关面试题,看这篇就够了!保证能让面试官颤抖!
Tomcat相关的面试题出场的几率并不高,正式因为如此,很多人忽略了对Tomcat相关技能的掌握. 这次整理了Tomcat相关的系统架构,介绍了Server.Service.Connector.Con ...
- 面试题: !=!=未看12 略多 sql语句练习 非常 有用
JAVA面试总结 2015年03月25日 16:53:40 阅读数:4306 刚才看到的,先转载过来,没准以后用到…… 面试总结 2013年8月6日: 问题2:Hibernate的核心接口有哪些? ...
- 松哥整理了 15 道 Spring Boot 高频面试题,看完当面霸
什么是面霸?就是在面试中,神挡杀神佛挡杀佛,见招拆招,面到面试官自惭形秽自叹不如!松哥希望本文能成为你面霸路上的垫脚石! 做 Java 开发,没有人敢小觑 Spring Boot 的重要性,现在出去面 ...
- 15 道 Spring Boot 高频面试题,看完直接当面霸【入门实用】
前言 本文转自松哥(网名:江南一点雨)的一篇实用入门文章,写的挺好的,希望对各位有所帮助. 什么是面霸?就是在面试中,神挡杀神佛挡杀佛,见招拆招,面到面试官自惭形秽自叹不如!松哥希望本文能成为你面霸路 ...
- 整理了 15 道 Spring Boot 高频面试题,看完当面霸!
转载:https://mp.weixin.qq.com/s/fj-DeDfGcIAs8jQbs6bbPA 什么是面霸?就是在面试中,神挡杀神佛挡杀佛,见招拆招,面到面试官自惭形秽自叹不如!松哥希望本文 ...
- 【软件测试 Python自动化】全网最全大厂面试题,看完以后你就是面试官!
前言 为了让大家更好的理解和学习投入到Python自动化来找到一份好的资料也是学习过程中,非常重要的一个点.你的检索能力越强,你就会越容易找到最合适你的资料. 有需要的小伙伴可以复制群号 313782 ...
随机推荐
- Android图片处理——压缩、剪裁、圆角、保存
点击查看原文 项目中用到的关于图片的处理 public class UtilPicture { public static final String IMAGE_UNSPECIFIED = " ...
- php中ajax使用实例
php中ajax使用实例 一.总结 1.多复习:这两段代码都挺简单的,就是需要复习,要多看 2.ajax原理:ajax就是部分更新页面,其实还在的html页面监听到事件后,然后传给服务器进行操作,这里 ...
- 7.Maven之(七)pom.xml配置文件详解
转自:https://blog.csdn.net/qq_33363618/article/details/79438044 setting.xml主要用于配置maven的运行环境等一系列通用的属性,是 ...
- Android NineGridLayout — 仿微信朋友圈和QQ空间的九宫格图片展示自定义控件
NineGridLayout 一个仿微信朋友圈和QQ空间的九宫格图片展示自定义控件. GitHub:https://github.com/HMY314/NineGridLayout 一.介绍 1.当只 ...
- Django项目之Web端电商网站的实战开发(二)
说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 接着上一篇博客继续往下写 :https://blog.csdn.net/qq_41782425/article/details/8 ...
- 【Codeforces Round #453 (Div. 2) A】 Visiting a Friend
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 维护最右端的端点就好. [代码] #include <bits/stdc++.h> using namespace st ...
- URL短地址压缩算法 微博短地址原理解析 (Java实现)
原博客地址:http://blog.csdn.net/xyz_lmn/article/details/8057270 最近,项目中需要用到短网址(ShortUrl)的算法,于是在网上搜索一番,发现有C ...
- HDU 2489 Minimal Ratio Tree(prim+DFS)
Minimal Ratio Tree Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- android屏幕适配方案
曾经看了android的屏幕适配方案,有非常多种.当中自己用到的一种是:先找一款主流的分辨率的android机,如:1080*1920的分辨率做基准,然后在这个基准上.调整好一切布局.图片.适配其它手 ...
- Project Euler 389 Platonic Dice (概率)
题目链接: https://projecteuler.net/problem=389 题意: 掷一个正四面体骰子,记点数为\(T\). 掷\(T\)个正六面体骰子,记点数和为\(C\). 掷\(C\) ...