php开发面试题---1、php常用面试题一(PHP有哪些特性)

php开发面试题---1、php常用面试题一(PHP有哪些特性)

一、总结

一句话总结:

①.混合语法:php独特混合了C,Java,Prel以及PHP自创的语法.
②.为动态网页而生:可以比CGI或者Prel更快速去执行动态网页,与其他变成语言相比,PHP是讲程序嵌入到HTML文档中去执行,执行效率比完全生成HTML编辑的CGI要高很多,所有的CGI都能实现.
③.数据库和操作系统支持广泛:支持几乎所有流行的数据库以及操作系统.
④.c语言系列扩展:PHP可以使用C,C++进行程序的扩展.

 

1、nginx使用哪种网络协议?

http:nginx是应用层,我觉得从下往上的话,传输层用的是tcp/ip,应用层用的是http,fastcgi负责调度进程!

 

2、eho(),print(),print_r()的区别?

是否有返回值,是否可以打印数组

echo是语言结构,无返回值;

print功能和echo基本相同,不同的是print是函数,有返回值;

print_r是递归打印,用于输出数组对象。

 

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

①.缓存:有效使用缓存,增加缓存命中率.
②.服务器结构:使用负载均衡.
③.CDN:对静态文件使用CDN进行存储和加速.
④.减少数据库使用:想法减少数据库的使用.

 

4、谈谈asp,php,jsp的优缺点?

服务器依赖:asp是需要依赖IIS,是微软开发的语言,php和jsp可以依赖apache或者 nginx等其他服务器
安全性:
运行速度:比如是否是多线程

 

5、简述三种屏蔽php程序的notice警告的方法?

文件开始设置错误级别:
修改php.ini 设置error_reporting set_error_handler:
@抑制错误:

答:初始化变量,文件开始设置错误级别或者修改php.ini 设置error_reporting set_error_handler 和 @抑制错误:

①在程序中添加:error_reporting (E_ALL & ~E_NOTICE);

②.或者修改php.ini中的:error_reporting = E_ALL 改为:error_reporting = E_ALL & ~E_NOTICE

③.error_reporting(0);或者修改php.inidisplay_errors=Off

 

6、如何从一个标准 url 里取出文件的扩展名(比如:http://www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php)?

使用系统函数:parse_url转化url为url信息的数组
function getExt($url){

$arr=parse_url($url);//var_dump得到array(4) { ["scheme"]=> string(4) "http" ["host"]=> string(15) "www.sina.com.cn" ["path"]=> string(14) "/abc/de/fg             //.php" ["query"]=> string(4) "id=1" }

$dir=basename($arr['path']);

$ext=explode(".",$dir);

echo $ext[1];

}

$s="http://www.sina.com.cn/abc/de/fg.php?id=1";

getExt($s);

 

 

 

7、php如何遍历一个文件夹下的所有文件和子文件夹?

打开文件夹句柄:opendir():if(@$handle = opendir($dir)) { //注意这里要加一个@,不然会有warning错误提示:)
排除根目录:if($file != ".." && $file != ".") {
判断是否是子文件夹,是子文件夹就递归:is_dir():if(is_dir($dir."/".$file)) {

 

<?php
function my_dir($dir) {
    $files = array();
    if(@$handle = opendir($dir)) { //注意这里要加一个@,不然会有warning错误提示:)
        while(($file = readdir($handle)) !== false) {
            if($file != ".." && $file != ".") { //排除根目录;
                if(is_dir($dir."/".$file)) { //如果是子文件夹,就进行递归
                    $files[$file] = my_dir($dir."/".$file);
                } else { //不然就将文件的名字存入数组;
                    $files[] = $file;
                }
 
            }
        }
        closedir($handle);
        return $files;
    }
}
echo "<pre>";
print_r(my_dir("."));
echo "</pre>";

 

 

二、ASP\JSP\PHP相比各有什么优缺点(百度)

参考:ASP\JSP\PHP相比各有什么优缺点?_百度知道
https://zhidao.baidu.com/question/7157295.html

 

php优点

  1. 跨平台,性能优越,跟Linux/Unix结合别跟Windows结合性能强45%,并且和很多免费的平台结合非常省钱,比如LAMP(Linux
/Apache/Mysql/PHP)或者FAMP(FreeBSD/Apache/Mysql/PHP)结合,或者数据应用够大可以考虑换
PostgreSQL或者Oracle,支持N种数据库。(N >= 10)

  2. 语法简单,如果有学习C和Perl的很容易上手,并且跟ASP有部分类似。有成熟的开发工具,比如NuPHPed,或者Zend
Studio等等,再Linux平台下可以使用Eclipse等等。

  3. 目前主流技术都支持,比如WebService、Ajax、XML等等,足够应用。

  4. 有比较完整的支持,比如使用ADODB或者PEAR::DB做数据库抽象层,用Smarty或者smart template做模板层,如果是PHP
5.1的话,还能够使用PDO(PHP Data Object)来访问数据库。

  5. 有很多成熟的框架,比如支持MVC的框架:phpMVC,支持类似ASP.net的事件驱动的框架:Prado,支持类似Ruby On
Rails的快速开发的框架:Cake等等,足够满足你的应用需求。

  6. PHP 5已经有成熟的面向对象体系,能够适应基本的面向对象要求。适合开发大型项目。

  7. 有成熟的社区来支持PHP的开发。

  8.目前已经很多大型应用都是使用PHP,比如淘宝网、Yahoo、163、Sina等等大型门户,很多选用PHP来作为他们的开发语言,所以大型门户都能够选用它,我想足够能够你的使用了。

  9. 有很多开源的框架或开源的系统可以使用,比如比较知名的开源框架有Zend
Framework、CakePHP、CodeIgniter、symfony等,开源论坛有Discuz!、Phpwind等,开源博客
WordPress,开源网店系统如Ecshop、ShopEx等,开源的SNS系统如UCHome、ThinkSNS等。

  php缺点

  1.对多线程支持不太好,大多数时候我们只能简单的模拟去实现的。

  2.语法不太严谨,比如变量不需要定义就可以使用,在c,java,c++中变量是必须先定义以后才可以使用的。

  3.也许有经验的PHP程序员最感到痛苦的地方是PHP的解释运行机制。这种运行机制使得每个PHP页面被解释执行后,所有的相关资源都会被回收。也就是说,PHP在语言级别上没有办法让某个对象常驻内存。在PHP中,所有的变量都是页面级的,无论是全局变量,还是类的静态成员,都会在页面执行完毕后被清空。以JSP为例,在JSP中,Java
Bean的scope有四种有效值:Page、Application、Session、Request,分别对应页面、程序、会话、请求四种生存期。但在PHP中,只有Page一种生存期。

  JSP的优势

  (1)一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。

  (2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。

  (3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。

  (4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。

  JSP的劣势

  (1) 与ASP一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。

  (2)
Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。从另一方面,它还需要硬盘空间来储存一系列的。java文件和。class文件,以及对应的版本文件。

  ASP的特点:

  1、任何开发工具皆可发展ASP

  只要使用一般的文书编辑程序,如Windows记事本,就可以编辑。当然,其他网页发展工具,例如,FrontPage Express、
FrontPage等也都可以;不过还是建议你用记事本来写,既省钱又方便,若是使用那些所见即所得的网页编辑来写ASP,可能会发生一些意想不到的离奇状态。

  2、通吃各家浏览器

  由于ASP程序是在网络服务器端中执行,执行结果所产生的HTML文件适用于不同的浏览器。

  3、语言相容性高

  ASP与所有的ActiveX Script语言都相容,除了可结合HTML,VBScript、Java Script、Active
X服务器组件来设计外,并可经由“plug-In(外挂组件模组)的方式,使用其他厂商(Third Party)所提供的语言。

  4、隐密安全性高

  如果我们在浏览器中直接查看网页的原始代码,就只能看到HTML文件,原始的ASP程序代码是看不到的!这是因为ASP程序先于网站服务(Web
Server)端执行后,将结果转换成标准HTML文件,再传送到客户端(Client)的浏览器上,因此,我们所辛苦撰写的ASP程序并不会轻易地被看见进而被盗用。

  5、易于操控数据库

  ASP可以轻易地通过ODBC(Open Database
Connectivity)驱动程序连接各种不同的数据库,例如:Acess、Foxpro、dBase、Oracle等等,另外,ASP亦可将“文本文件”或是”Excel”
文件当成数据库用。

  6、面向对象学习容易

  ASP具备有面向对象(Object-Oriented)功能,学习容易,ASP提供了五种方便能力强大的内建对象:Request、Response、Sever、Application以及Session,同时,若使用ASP内建的“Application”对象或”Session”对象所撰写出来的ASP程序可以在多个网页之间暂时保存必要的信息。

 

 

 

 

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值