热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP中级程序员常见面试题(有参考答案)

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

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

答: 1、$a="http://www.test.com.cn/abc/de/fg.php?id=1";    

2、$b=parse_url($a);

3、Echosubstr($b['path'],strpos($b['path'],'.')); 或者:

4、Echoend(explode('.',$b['path']));2

描述一下大流量高并发量网站的解决方案

答: 1、确认服务器硬件是否足够支持当前的流量。

2、使用memcache缓存技术,将动态数据缓存到内存中,动态网页直接调用这些文件,而不必在访问数据库。

3、禁止外部的盗链。

4、外部网站的图片或者文件盗链往往会带来大量的负载压力,因此应该严格限制外部对自身图片或者文件盗链,目前可以简单的通过refer来控制盗 链,apache自己就可以通过配置来禁止盗链。

5、控制大文件的下载。 大文件的下载会占用很大的流量,对于非SCSI硬盘来说会消耗,使得网站响应能力下降。

6、使用不同的主机分流主要流量

7、使用流量统计软件。 在网站上安装一个流量统计软件,可以即时知道哪些地方耗费了大量流量,哪些页面需要再进行优化。

8、分库分表。

9、Sphinx全文索引引擎。

如何设计或配置Mysql,才能达到高效使用的目的。

答:

1、数据库设计方面,设计结构良好的数据库,允许部分数据冗余。 选取最适用的字段属性,尽可能把字段设置为NOTNULL,这样在查询的时候,数据库不用去比较NULL值。

2、系统架构设计方面,表散列,把海量数据散列到几个不同的表里面,集群,数据库查询和写入分开。 写高效sql语句,以提高效率。使用连接(join)来代替子查询使用联合(union)来代替手动创建的临时表所得皆必须,只从数据库取必须的数据。必 要的时候用不同的存储引擎,比如Innodb可以减少死锁,HEAP可以提高一个数量级的查询速度。

使用事务使用外键使用索引24.如何进行防SQL注 入?

答:

1、过滤掉一些常见的数据库操作关键字:select,insert,update,delete,and,等或者通过系统函 数:addslashes(需要被过滤的内容)来进行过滤。

2、在PHP配置文件中Register_globals=off;设置为关闭状态 //作用将注册全局变量关闭。比如:接收POST表单的值使用$_POST['user'],如果将register_globals=on;直接使 用$user可以接收表单的值。

3、SQL语句书写的时候尽量不要省略小引号(tab键上面那个)和单引号

4、提高数据库命名技巧,对于一些重要的字段根据程序的特点命名,取不易被猜到的

5、对于常用的方法加以封装,避免直接暴漏SQL语句

6、开启PHP安全模式Safe_mode=on;

7、打开magic_quotes_gpc来防止SQL注入 Magic_quotes_gpc=off;默认是关闭的,它打开后将自动把用户提交的sql语句的查询进行转换,把'转为\',这对防止sql注入有重 大作用。因此开启:magic_quotes_gpc=on;

8、控制错误信息关闭错误提示信息,将错误信息写到系统日志。

9、使用mysqli或pdo预处理。

用PHP写出一个安全的用户登录系统需要注意哪些方面。

答:

1、密码要使用MD5(密码+字符串)进行加 密。

2、登录表单的名称不要跟数据库字段一样,以免暴漏表字段。

3、用户表的表名、字段名、密码尽量用不容易被猜到的。

4、要使用验证码验证登陆,以防止 暴力破解。

5、验证提交的数据是不是来自本网站。

6、登录后台处理代码数据库部分使用预处理,做好过滤,防止sql注入。

使用过哪些PHP框架。试 描述其优劣点。

答:

1、BroPHP框架:优点:轻量级学习型框架,配置简单,操作简单,容易上手,提供了比较全面的文档。缺点:

2、ThinkPHP框 架:优点:功能比较全面,配置相对比较简单,操作相对比较简单,有很多使用示例程序。缺点:提供的操作方法太多,新手不知如何选择,文档不够全面。

用过哪些版本控制工具?

答:使用过SVN版本控制器。

输出为Mozilla/4.0(compatible;MSIE5.01;Window NT 5.0)时,可能的输出语句是:B

A.$_SERVER['HTTP_USER_AGENT_TYPE'];

B. $_SERVER['HTTP_USER_AGENT'];

C. $_SERVER['USER_AGENT'];

D. $_SERVER['AGENT'];

下面功能PHP无法实现的是:D

A. 服务器端脚本运行

B. 命令行脚本运行

C. 客户端图形界面(GUI)程序

D. 浏览器端执行DOM操作

下面说法不正确的是:C

A. PHP有四种标量类型:布尔型(boolean),整型(integer),浮点型(float),字符串(string)

B. 浮点型(float)与双精度型(double)是同一种类型

C. 符合类型包括:数组(array),对象(object),资源(resource)

D. 伪类型:混合型(mixed),数字型(number),回调(callback)

下面不是PHP语法的组成部分的函数是:AD

A. array B. eval C. each D. list

执行下面的代码的结果是什么?A

A. boolean

B. boolean0

C. booleanFALSE

D. booleanfalse

SESSION与 COOKIE的区别是什么,请从协议,产生的原因与作用说明?

答:
1、http无状态协议,不能区分用户是否是从同一个网站上来的,同一个用户请求不同的 页面不能看做是同一个用户。

2、SESSION保存在服务器端,COOKIE保存在客户端,SESSION依赖COOKIE进行传输,如果COOKIE被 禁用了,SESSION将不能继续使用。

HTTP状态中302、403、 500代码含义?

答:

300重定向、403服务器拒绝访问、500服务器内部错误。

Linux 下建立压缩包,解压缩包的命令。

答:
1、压缩:gzip 、tar cvfz、zip、bzip22、解压:gunzip、tar zxvf、unzip、bunzip2
$a=3;$b=4; if($a||$b=5){ ||或和|的区别 echo 'todo'; } $b的值是(a):
A a. 4; b. 5; c. 3; d. false

什么是面向对象?主要特征是什么?

答:
1、面向对象是程序的一种设计方式,它利于提高程序的重用性,是程序结构更加清晰。
2、主要特征:封装、继承、多态。


推荐阅读
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • .htaccess文件 ... [详细]
  • SVN安装配置和使用
    简介:SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • SVN 功能说明(简版)
    Subversion(SVN)是什么?SVN是一种版本管理系统,是开源软件的基石。即使在沟通充分的情况下,多人维护同一份源代码的一定也会 ... [详细]
author-avatar
朱鹏飞0521
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有