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 服务器的技术,客户端浏览器不需要任何附加的软件支持。

转载于:https://www.cnblogs.com/Renyi-Fan/p/9076383.html

php面试题9(看的时候就应该随手截图做笔记的)相关推荐

  1. Java长见到的面试题,看你能答出几题,就知道自己有多菜了

    作者:Java3y 前言 只有光头才能变强 Redis目前还在看,今天来分享一下我在秋招看过(遇到)的一些面试题(相对比较常见的) 0.final关键字 简要说一下final关键字,final可以用来 ...

  2. 最新阿里Java技术面试题,看这一文就够了!

    金三银四跳槽季即将到来,作为 Java 开发者你开始刷面试题了吗?别急,小编整理了阿里技术面试题,看这一文就够了! 阿里面试题目目录 1:技术一面(基础面试题目) 2:技术二面(技术深度.技术原理) ...

  3. HashMap面试题,看这一篇就够了!

    在程序员这一职业中,集合是我们使用频率相当高的一个工具,而其中的 HashMap,则更是我们用以处理业务逻辑的好帮手,同时 HashMap 的底层实现和原理,也成了面试题中的常客. 还在担心面试中被问 ...

  4. 小白入职公司都是自己看,嫌弃增删改查,做了2年感觉没前途?

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:小白入职公司都是自己看,嫌弃增删改查,做了2年感觉没前途? 有个老铁联系我说,同事分的有些功能,项目框架代码都自动生成好了,只 ...

  5. android 老人模式吗,父母适合用安卓还是iPhone?看完这些适老化功能再做决定

    原标题:父母适合用安卓还是iPhone?看完这些适老化功能再做决定 选智能手机是个大事,毕竟生活中各种场景都要用到.年轻人选手机考虑的方方面面比较多,既要有好看的外观,在性能.功能.系统等里里外外都要 ...

  6. 看论文文献要如何做笔记?

    一.阅读前:向自己提问 在阅读不同类型的文献之前,你要首先明确自己的阅读目的.以人文社科类的论文为例,如果你阅读的主题是关于"全球化背景下中国家之间的政治博弈",你需要想清楚你阅读 ...

  7. 浅谈下MIP的优与劣看完再决定到底要不要做MIP网站!

    MIP是百度推出的专门应用于移动网页加速的程序代码,当网站建设时使用了MIP代码后可达到秒开效果,自2017年10月百度推出<闪电算法>之后MIP越来越被广泛应用于移动网站建设当中,今天梓 ...

  8. 安卓给string对象赋值_String 面试题!看完让你恍然大悟!

    点击上方"JAVA",星标公众号重磅干货,第一时间送达这篇来看看关于Java String类的5道面试题,这五道题,我自己在面试过程中亲身经历过几道题目,学完了这篇,我才焕然大悟, ...

  9. Tomcat相关面试题,看这篇就够了!保证能让面试官颤抖!

    Tomcat相关的面试题出场的几率并不高,正式因为如此,很多人忽略了对Tomcat相关技能的掌握,下面这一篇文章最早发布在知识星球,整理了Tomcat相关的系统架构,介绍了Server.Service ...

最新文章

  1. QML自定义图表图例
  2. mysql 执行计划 代价_mysql explain执行计划详解
  3. echart实例数据 本地加载_JVM 类加载概述
  4. 华为鸿蒙操作界面,华为鸿蒙被“实锤”,操作界面曝光,为何被吐槽是换皮安卓?...
  5. 浏览器tab标签显示网站标志图标
  6. Flutter——限制TextField只能输入汉字或英文字母或数字,并限制输入最多中文10字符,英文20字符
  7. Linux shell 查找操作
  8. 安装虚拟机之下载windows镜像
  9. Mac系统文件在Win解压乱码问题
  10. Vue项目实战:电商后台管理系统(Vue+VueRouter+Axios+Element)
  11. MFC API——》ModifyStyle
  12. C rgb565转rgb888
  13. 安捷伦mso8104a示波器电源烧毁故障维修【图文】
  14. Java对接企业微信消息推送
  15. Blender建模汇总
  16. pgsql命令行直接输入密码登录
  17. 一文带你重新审视CAP理论与分布式系统设计
  18. python数据可视化库 动态的_Python数据可视化:Pandas库,要是一行代码就能完成...
  19. 06 方法定义及重载
  20. 电脑网络重置后的出现的问题以及解决办法

热门文章

  1. Ubuntu 20.04 LTS 代号 “Focal Fossa“,明年 4 月正式发布
  2. W3C 宣布:WebAuthn 成为正式 Web 标准
  3. SQL——联接分类和本质
  4. 四川专科学校排名四川计算机,四川省现代计算机职业学院2020年排名
  5. python自动化框架pytest接口关联串联_python(pytest)+allure+jenkins 实现接口自动化的思路...
  6. js 滚动条自动滚动到最底部
  7. eclipse插件开发(一) 简易4页签编辑器(源码 | 设计 | JS | CSS)
  8. php 检查数据库查询结果,php数据库连接、查询、显示结果的小例子
  9. android 查看文件格式,Android-选择并查看任何类型的文件
  10. 计算机二级考试科目python难吗_计算机二级python考试难吗