zoukankan      html  css  js  c++  java
  • 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>";

    二、ASPJSPPHP相比各有什么优缺点(百度)

    参考:ASPJSPPHP相比各有什么优缺点?_百度知道
    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程序可以在多个网页之间暂时保存必要的信息。

     
  • 相关阅读:
    vue路由的简单实例
    webpack配置sass模块的加载
    jQuery停止动画——stop()方法的使用
    jQuery检查某个元素在页面上是否存在
    js获取鼠标当前的位置
    js实现一些跨浏览器的事件方法
    逐个访问URL的每个查询字符串参数
    《锋利的jQuery》(第2版)读书笔记4
    jQuery与Ajax的应用——《锋利的jQuery》(第2版)读书笔记3
    jQuery中的事件和动画——《锋利的jQuery》(第2版)读书笔记2
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/10856720.html
Copyright © 2011-2022 走看看