php面试题

白俊遥博客

问题1:谈谈你对的PHP的基本认识。
回答:PHP是HypertextPreprocessor(超文本预处理器)的简称,是一种用来开发动态网站的服务器端脚本语言。


问题2:什么是MVC?
回答:MVC,即Model(数据层),View(视图层),Controller(控制层)。PHP中的MVC模型是一种有效将代码分成三层的管理办法,其中Model表示着应用中的数据信息,View负责将应用中的数据信息展现出来,Controller控制着如何将数据信息读出。


问题3:你在一个页面上有几种方式添加CSS?
回答:三种办法可以使用:(1)引用外部CSS文件。(2)引用内部CSS文件。(3)内联CSS样式。


问题4:PHP支持多继承吗?
回答:不支持。PHP中只允许单继承,父类可以被一个子类用关键字“extends”继承。


问题5:PHP中echo和print有什么区别?
回答:这两个函数看起来很相似,都是用来打印输出的。两者最大的区别是,echo不是函数,没有返回值,而print是一个函数有返回值,所以相对而言如果只是输出echo会更快。


问题6:GET和POST方法有什么区别?
回答:我们在网页上填写的表单信息可以通过这两种方法将数据传递到服务器上,GET或POST方法。当我们使用GET时,所有的信息都会显示在URL地址中,并且使用GET方法最多只能传递1024个字符,所以GET方法适用于传输量小,且数据安全不是很重要的情况。而POST方法,没有信息会显示在URL地址上,相对安全,且最多可以传输2MB字节的数据,这个数字还可以根据需要增加。


问题7:PHP中获取图像大小,宽与高的函数是什么?
回答:getimagesize () 获取图像的尺寸,imagesx () 获取图像的宽度,imagesy ()获取图像的高度。


问题8:PHP中的PEAR是什么?
回答:PEAR是PHP扩展与应用库(the PHP Extension and ApplicationRepository)的缩写,它是一个PHP扩展及应用的一个代码仓库,同时它也是一个标准,使用这个标准来书写PHP代码,会增强程序的可读性,复用性。


问题9:如何使用PHP和MySQL上传视频?
回答:我们只需要复制数据库中存储视频的路径,而不是存储视频文件本身。所有的视频会被存在另外一个文件夹中,当需要的时候可以从中调用视频。上传视频的默认大小是2MB,但是我们也可以在php.ini文件中修改max_filesize,改变文件大小。


问题10:PHP中的错误类型都有哪些?
回答:PHP中主要有三种错误类型,(1)Notice:这些都是一些非常正常的信息,而非重大错误,甚至有一些都不会展示给用户。(2)Warning:这类是稍微严重一些的错误,错误会展示给用户,但不影响程序的输出。(3)Fatalerrors:这些是非常严重的错误,比如要访问一个不存在的PHP类。


问题11:在PHP中如何定义常量?
回答:使用define () 来定义常量,比如define (“Newconstant”, 30);


问题12:禁用COOKIE 后SEESION 还能用吗?
回答:Session模型简介中,大家可以发现Session状态应该存储在两个地方,分别是客户端和服务器端。客户端只负责保存相应网站的SessionID,而其他的Session信息则保存在服务器端,客户端的SessionID实际是以Cookie的形式存储的。如果用户在浏览器的设置中选择了禁用Cookie,那末他也就无法享受Session的便利之处了。


问题13:抓取远程图片到本地,你会用什么函数?
回答:用file_get_contents函数:

<?php
$img =file_get_contents('http://www.baidu.com/img/baidu_logo.gif');
file_put_contents('1.gif',$img);
echo '<img src="1.gif">';
?>

 

 

问题14:已知姓名A,姓名B,给一个求他们缘份的算法
回答:

<?php
    function is_gfriend($na,$nb){
        $random1=rand(1,5);//计算他们有1/5的缘分
        $random2=rand(1,5);
        if ($random1==$random2)
            return $na."+".$nb."你们有缘分";
        else
            return $na."+".$nb."可惜无缘份";
    }
    echo is_gfriend(a,b);
?>

 

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

在失败的时候:
include产生一个warning,而require产生直接产生错误中断
require在运行前载入
include在运行时载入
require_once
include_once


问题16:谈谈asp,php,jsp的优缺点
回答:

asp是需要依赖IIS,是微软开发的语言
php和jsp可以依赖apache或者 nginx等其他服务器


问题17:用PHP打印出前一天的时间格式是2014-12-1022:21:21
回答:echo date('Y-m-d H:i:s', strtotime('-1 day'));


问题18:请简述项目中优化sql语句执行效率的方法,从哪些方面,sql语句性能如何分析?
回答:

(1)选择最有效率的表名顺序

(2)WHERE子句中的连接顺序

(3)SELECT子句中避免使用"*"

(4)用Where子句替换HAVING子句

(5)通过内部函数提高SQL效率

(6)避免在索引列上使用计算。

(7)提高GROUP BY 语句的效率, 可以通过将不需要的记录在GROUP BY之前过滤掉。


问题19:写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名,例如:http://www.abc.com/abc/de/fg.php?id=1需要取出 php 或.php
回答:

<?php
    $url ="http://www.abc.com/abc/de/fg.php?id=1";
    $path =parse_url($url);
    echo pathinfo($path['path'],PATHINFO_EXTENSION); //php
?>


问题20:对于大流量的网站,您采用什么样的方法来解决访问量问题
回答:

首先,确认服务器硬件是否足够支持当前的流量

其次,优化数据库访问。

第三,禁止外部的盗链。

第四,控制大文件的下载。

第五,使用不同主机分流主要流量

第六,使用流量分析统计软件


fiveblog
请先登录后发表评论
  • 最新评论
  • 总共0条评论