PHP面试题收集-阿里云开发者社区

开发者社区> 技术小胖子> 正文

PHP面试题收集

简介:
+关注继续查看

提示:答案不唯一,祝各位PHPer找到称心的好工作!


1、PHP是啥东东?(PHP的意思)

1
PHP是一个基于服务端来创建动态网站的脚本语言。(PHP原始为Personal Home Page的缩写,已经正式更名为 "PHP: Hypertext Preprocessor"

2、PHP获取客户端和服务器端IP?

客户端:$_SEVER['REMOTE_ADDR'] 服务端:$_SERVER["SERVER_ADDR"]

3、PHP如何检测一个日期的有效性?

var_dump(checkdate(11,21,2012)); //返回true or false

4、数据库去除重复查询

select distinct `title` from `table`;

5、冒泡算法

<? $arr = array(345,4,17,6,52,16,58,69,32,8,6666,234); for($i=1; $i<count($arr); $i++){     for($j=count($arr)-1; $j>=$i; $j--){              if($arr[$j] < $arr[$j-1]){             $temp = $arr[$j-1];             $arr[$j-1] = $arr[$j];             $arr[$j] = $temp;         }              } } print_r($arr); ?>

6、echo,print,print_r区别?

echo    输出,不是函数,没有返回值,故输出速度比print快。 print   打印字符串,本身是个函数,有返回值。 print_r 则是打印复合类型  如数组 对象

7、表单中 get与post提交方法的区别?

1
2
3
4
答:get用户端将数据加到URL后,格式为”?字段1=输入数据1&字段2=输入数据2&..."。
  由于get提交参数后会在地址栏中显示出来,所以会产生严重的安全问题。
  get传输的数据量小,get传输的数据量小,这主要是因为受url长度限制;而post可以传输大量的数据。
  get限制表单中数据集的范围为asc2码,而post可以支持整个iso10646字符集。

8、session与cookie的区别?

1
cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。

9、数据库中的事务是什么?

1
答:事务就是一系列的操作,这些操作完成一项任务。只要这些操作里有一个操作没有成功,事务就操作失败,发生回滚事件。即撤消前面的操作,这样可以保证数据的一致性。而且可以把操作暂时放在缓存里,等所有操作都成功有提交数据库,这样保证费时的操作都是有效操作。

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

1
2
3
4
5
6
<?
echo date('Y-m-d H:i:s',mktime(date("H"), date("i"), date("s"), date("m") , date("d")-1, date("Y"))); 
echo date('Y-m-d H:i:s',date(strtotime("-1 day"))); 
echo date('Y-m-d H:i:s'strtotime('-1 day'));
//三种方法都可以
?>

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

1
能够使HTML和PHP分离使用的模板引擎:Smarty,Dwoo,TinyButStrong,Template Lite,Savant,phemplate,XTemplate

12、使用哪些工具进行版本控制?

1
svn版本控制系统、cvs版本控制系统 等等

13、如何实现字符串翻转?

1
strrev()函数 用于反转字符串

14、优化MYSQL数据库的方法

1
2
3
4
5
6
7
8
9
10
11
12
13
1、选取最适用的字段属性
2、使用连接(JOIN)来代替子查询(Sub-Queries)
3、使用联合(UNION)来代替手动创建的临时表
4、事务
5、锁定表
6、使用外键
7、使用索引
8、优化的查询语句
9、必要的时候用不同的存储引擎.比如InnoDB可以减少死锁.HEAP可以提高一个数量级的查询速度
10、所得皆必须,只从数据库取必需的数据
11、数据库设计方面,设计结构良好的数据库,必要的时候,去正规化,允许部分数据冗余,避免JOIN操作,以提高查询效率 
12、系统架构设计方面,表散列,把海量数据散列到几个不同的表里面.快慢表,快表只留最新数据,慢表是历史存档.集群,主服务器Read & write,从服务器read only,或者N台服务器,各机器互为Master 
详细见:http://tech.ccidnet.com/art/1108/20070619/1117649_1.html

15、MYSQL取得当前时间的函数是?格式化日期的函数是?

1
2
取得当前时间用 now()
DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。DATE_FORMAT(date,format)

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

1
2
3
1、使用mbstring扩展库的mb_substr截取就不会出现乱码了。
2、自己书写截取函数,但效率不如用mbstring扩展库来得高。
3、如果仅是为了输出截取的串,可用如下方式实现:substr($str, 0, 30).chr(0)。

17、请简单阐述您最得意的开发之作

1
PHPerxuqin-PHP开发者的上网首页(http://www.phperxuqin.com/)

18、对于大流量的网站,您采用什么样的方法来解决访问量问题?

1
2
3
4
5
6
1、确认服务器硬件是否足够支持当前的流量。
2、优化数据库访问。
3、禁止外部的盗链。
4、控制大文件的下载。
5、负载均衡,使用不同主机分流主要流量。
6、使用流量分析统计软件,针对问题做进一步的优化。

19、语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们?

1
2
3
4
5
1、PHP程序执行到require()时,只会读取一次档案,故常放在程序开头,档案引入后PHP会将网页档重新编译,让引入档成为原先网页的一部分。
2、PHP程序执行到include()时,每次皆会读取档案,故常用于流程控制的区段,如条件判断或循环中。
3、require() :无条件包含,如果文件不存在,会报出一个fatal error.脚本停止执行
4、include() : 有条件包含,如果文件不存在,会给出一个 warning,但脚本会继续执行
5、推荐使用require_once()和include_once(),可以检测文件是否有重复包含。

20、如何修改SESSION的生存时间?

1
2
3
4
5
6
一:在php.ini 中设置 session.gc_maxlifetime = 1440 //默认时间
 
二:代码实现
$lifeTime = 24 * 3600; // 保存一天 
session_set_cookie_params($lifeTime); 
session_start();

21、在HTTP 1.0中,状态码301、401的含义是?如果返回“找不到文件”的提示,则可用header函数,其语句为?

1
2
3
301 Moved Permanently 客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。
401:表示未经授权
header("HTTP/1.0 404 Not Found");

22、


继续...



      本文转自许琴 51CTO博客,原文链接:http://blog.51cto.com/xuqin/1065509,如需转载请自行联系原作者





版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10018 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
9154 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13821 0
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
7456 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
7344 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
4490 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
22364 0
21119
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载