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

一些常见的PHP面试题目及解析

前言生活总是要往前看,等待了一天也没有阿里的面试通知,心情是相当灰暗,但是生活总要继续,还是要向前看,做几道PHP的面试题目,毕竟我的主要开发语言还是PHP题目1、一个包含中英文的字符串如何获得它的自

前言

生活总是要往前看,等待了一天也没有阿里的面试通知,心情是相当灰暗,但是生活总要继续,还是要向前看,做几道PHP的面试题目,毕竟我的主要开发语言还是PHP

题目

1、一个包含中英文的字符串如何获得它的自然长度
需要考虑汉字的字符编码,注意UTF-8中一个汉字占3个字节
/**
* 获取中英文混排的字符串的长度
*/

$str = "还没等到阿里的面试通知123456";

$nor_len = mb_strlen($str, "utf8");

echo $nor_len."
";

$len = strlen($str);

echo $len."
";


2、问一问什么是ORM,有时候会问这个词的英文全称是什么,问问ta对于ORM有什么个人的看法
对象关系映射(Object Relationl Mapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系型数据库中。本质上是将数据从一种形式转换到另一种形式

3、问一问假如ta要自己去实现一个framework,ta会怎么设计
这里我直接谈一下自己对MVC的理解,我都是用原生php开发,没有用过框架


所以就算不用框架,自己代码里也可以做到mvc分层

4、问一问framework设计里的url dispatcher他会怎么考虑
还是MVC的问题,可以通过url进行设计:http://example.com////, 还可以通过nginx的rewrite进行跳转

5、如何访问会话变量(session)?
A.通过$_GET
B.通过$_POST
C.通过$_REQUEST
D.通过全局变量
E.以上都不对

E,解释:session变量只能通过$_SESSION数组获得

6、哪个函数能让服务器输出如下header?
set-COOKIE: foo=bar;

解答:setCOOKIE('foo', 'bar', time() + 3600);

7、在忽略浏览器bug的正常情况下,如何用一个与先前设置的域名(domain)不同的新域名来访问某个COOKIE?
A.通过HTTP_REMOTE_COOKIE访问
B.不可能
C.在调用setCOOKIE()时设置一个不同的域名
D.向浏览器发送额外的请求
E.使用Javascript,把COOKIE包含在URL中发送

B,解释:COOKIE不能跨域访问

8、在HTTPS下,URL和查询字串(query string)是如何从浏览器传到Web服务器上的?
A.这两个是明文传输,之后的信息加密传输
B.加密传输
C.URL明文传输,查询字串加密传输
D.URL加密传输,查询字串明文传输
E.为确保加密,查询字串将转换为header,夹在POST信息中传输

B,解释:ssl加密

9、当把一个有两个同名元素的表单提交给PHP脚本时会发生什么?
A.它们组成一个数组,存储在超级全局变量数组中
B.第二个元素的值加上第一个元素的值后,存储在超级全局变量数组中
C.第二个元素将覆盖第一个元素
D.第二个元素将自动被重命名
E.PHP输出一个警告

C
10、如何把数组存储在COOKIE里?
A.给COOKIE名添加一对方括号[]
B.使用implode函数
C.不可能,因为有容量限制
D.使用serialize函数
E.给COOKIE名添加ARRAY关键词

D,解释:序列化,serialize序列化数组即可,采用implode会丢失关联数组的key值

11、以下脚本输出什么?(E)
ob_start();
for ($i = 0; $i <10; $i++) {
echo $i;
}
$output = ob_get_contents();
ob_end_clean();
echo $output;
?>
A.12345678910
B.1234567890
C.0123456789
D.什么都没有
E.一个提示

C,解释:ob_start打开输出缓存,将输出字符保存在缓冲区里。通过ob_get_contents()获取输出的字符串

12、默认情况下,PHP把会话(session)数据存储在______里。
A.文件系统
B.数据库
C.虚拟内容
D.共享内存
E.以上都不是

A,解释:默认存在文件系统里,为了分布式,一般都放在Nosql数据库里,例如nginx+fastcgi+php5_fpm,修改fpm的php.ini session.save_path=tcp://redisip:redisport?auth=redispasswd

14、假设浏览器没有重启,那么在最后一次访问后的多久,会话(session)才会过期并被回收?
A.1440秒后
B.在session.gc_maxlifetime设置的时间过了后
C.除非手动删除,否则永不过期
D.除非浏览器重启,否则永不过期
E.以上都不对

B或者E,解释:虽然session有过期机制,默认session.gc_maxlifetime是1440秒,但是必须启动gc机制才行,gc机制的启动是有概率的,session分别使用session.gc_probability和session.gc_divisor来确定session的gc概率

15、哪个函数能把换行转换成HTML标签

nl2br

16、index.php脚本如何访问表单元素email的值?(双选)



A.$_GET[‘email’]
B.$_POST[‘email’]
C.$_SESSION[‘text’]
D.$_REQUEST[‘email’]
E.$_POST[‘text’]

BD,解释:提交方法为POST,所以只能从$_POST和$_REQUEST两个超级全局变量数组取得值

17、如果不给COOKIE设置过期时间会怎么样?
A.立刻过期
B.永不过期
C.COOKIE无法设置
D.在浏览器会话结束时过期
E.只在脚本没有产生服务器端session的情况下过期

D,解释:COOKIE跟session没有半毛钱关系,唯一的作用可以用COOKIE保存session的会话id
18、以下脚本将如何影响$s字符串?(双选)
$s = '

Hello

';
$ss = htmlentities ($s);
echo $s;
?>
A.尖括号<>会被转换成HTML标记,因此字符串将变长
B.没有变化
C.在浏览器上打印该字符串时,尖括号是可见的
D.在浏览器上打印该字符串时,尖括号及其内容将被识别为HTML标签,因此不可见
E.由于调用了htmlentities(),字符串会被销毁

BD,解释:htmlspecialchars转义$s后赋值给$ss,输出的是$ss









推荐阅读
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 深入解析 Spring Security 用户认证机制
    本文将详细介绍 Spring Security 中用户登录认证的核心流程,重点分析 AbstractAuthenticationProcessingFilter 和 AuthenticationManager 的工作原理。通过理解这些组件的实现,读者可以更好地掌握 Spring Security 的认证机制。 ... [详细]
  • 本文详细探讨了HTML表单中GET和POST请求的区别,包括它们的工作原理、数据传输方式、安全性及适用场景。同时,通过实例展示了如何在Servlet中处理这两种请求。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 本文深入探讨了HTTP请求和响应对象的使用,详细介绍了如何通过响应对象向客户端发送数据、处理中文乱码问题以及常见的HTTP状态码。此外,还涵盖了文件下载、请求重定向、请求转发等高级功能。 ... [详细]
  • PHP 过滤器详解
    本文深入探讨了 PHP 中的过滤器机制,包括常见的 $_SERVER 变量、filter_has_var() 函数、filter_id() 函数、filter_input() 函数及其数组形式、filter_list() 函数以及 filter_var() 和其数组形式。同时,详细介绍了各种过滤器的用途和用法。 ... [详细]
  • 探讨了如何解决Ajax请求响应时间过长的问题。本文分析了一个从服务器获取少量数据的Ajax请求,尽管服务器已经对JSON响应进行了缓存,但实际响应时间仍然不稳定。 ... [详细]
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 本文将深入探讨PHP编程语言的基本概念,并解释PHP概念股的含义。通过详细解析,帮助读者理解PHP在Web开发和股票市场中的重要性。 ... [详细]
  • 本文详细介绍如何通过修改配置文件来隐藏Apache、Nginx和PHP的版本号,从而增强网站的安全性。我们将提供具体的配置步骤,并解释这些设置的重要性。 ... [详细]
  • 阿里云ecs怎么配置php环境,阿里云ecs配置选择 ... [详细]
  • Nginx 反向代理与负载均衡实验
    本实验旨在通过配置 Nginx 实现反向代理和负载均衡,确保从北京本地代理服务器访问上海的 Web 服务器时,能够依次显示红、黄、绿三种颜色页面以验证负载均衡效果。 ... [详细]
  • 全面解析运维监控:白盒与黑盒监控及四大黄金指标
    本文深入探讨了白盒和黑盒监控的概念,以及它们在系统监控中的应用。通过详细分析基础监控和业务监控的不同采集方法,结合四个黄金指标的解读,帮助读者更好地理解和实施有效的监控策略。 ... [详细]
author-avatar
yovan
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有