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

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

  1. php开发面试题---攻击网站的常用手段有哪些,及如何预防(整理)

    php开发面试题---攻击网站的常用手段有哪些,及如何预防(整理) 一.总结 一句话总结: 比较记忆:注意比较各种攻击的区别,比如csrf和xss,以及xss和sql,这样才能记住 1.Sql注入是什 ...

  2. php开发面试题---面试常用英语(你能介绍你自己吗?)

    php开发面试题---面试常用英语(你能介绍你自己吗?) 一.总结 一句话总结: Could you please describe yourself? 1.为什么觉得自己适合这份工作? Why do ...

  3. 前端开发面试题总结之——JAVASCRIPT(一)

    ___________________________________________________________________________________ 相关知识点 数据类型.运算.对象 ...

  4. 2014年最新前端开发面试题

    2014年最新前端开发面试题(题目列表+答案 完整版) 转载自https://github.com/markyun/My-blog/tree/master/Front-end-Developer-Qu ...

  5. Android中高级进阶开发面试题冲刺合集(七)

    以下主要针对往期收录的面试题进行一个分类归纳整理,方便大家统一回顾和参考.本篇是第七集~ 强调一下:因篇幅问题:文中只放部分内容,全部面试开发文档需要的可在公众号<Android苦做舟>获 ...

  6. 前端开发面试题及答案整理

    前端开发面试题及答案整理 文章目录 一些开放性题目 position的值, relative和absolute分别是相对于谁进行定位的? 如何解决跨域问题 XML和JSON的区别? 谈谈你对webpa ...

  7. Android中高级进阶开发面试题冲刺合集(四)

    以下主要针对往期收录的面试题进行一个分类归纳整理,方便大家统一回顾和参考.本篇是第四集~ 强调一下:因篇幅问题:文中只放部分内容,全部面试开发文档需要的可在公众号<Android苦做舟>获 ...

  8. C++后端开发面试题精选

    后端开发面试题 =================== #后端开发面试知识点大纲: ##语言类(C++): ###关键字作用解释: volatile作用 Volatile关键词的第一个特性:易变性.所 ...

  9. c++后端开发面试题

    后端开发面试题 #后端开发面试知识点大纲: ##语言类(C++): ###关键字作用解释: volatile作用 Volatile关键词的第一个特性:易变性.所谓的易变性,在汇编层面反映出来,就是两条 ...

最新文章

  1. 关于Spark NLP学习,你需要掌握的LightPipeline(附代码)| CSDN博文精选
  2. JAVA工程师面试题库
  3. 计算机辅助设计A卷,《计算机辅助设计》考试试卷A.doc
  4. 使用代码创建BRF ruleset
  5. Bash脚本教程之基本语法
  6. 小米2s自带rec刷root_刷Magisk模块开机卡Logo了怎么办?两种方法教你轻松解决
  7. C#净化版WebApi框架
  8. CentOS下通过代理安装rails
  9. F2FS文件系统论文解读
  10. 从“老公”的称呼来历,看男人地位的变迁!
  11. 终端数据防泄漏解决方案
  12. 喉炎在临床上的症状表现
  13. 金华万豪、温州万豪、温州乐清万怡、哈尔滨城市中心万枫、九寨英迪格等酒店开业 | 全球旅报...
  14. Batch Normalization (BN层)-----批归一化
  15. 将数组修改为峰谷相间
  16. 关系抽取(二)远程监督方法总结
  17. 2018面试总结(阿里巴巴蚂蚁金服、饿了么、人人车等)
  18. 好论文是如何炼成的-林宙辰
  19. 团购市场分析:24券 团购数据处理过程【笔记】
  20. 行车电脑蓝牙ELM327 OBD使用记

热门文章

  1. 华中科技大学计算机系统结构,华中科技大学计算机系统结构考研
  2. oracle 查看白名单,oracle配置访问白名单教程
  3. HTML2em一定是32px,px,em,rem的区别
  4. docker 启动 停止容器
  5. git checkout
  6. werkzeug LocalProxy
  7. Flask session
  8. TensorFlow models/research
  9. C语言 显示器键盘io
  10. Linux 查看命令