版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PHP+HTML高频面试题及详细答案(真实职场版)一、HTML面试基础题(含答案)1、简述HTML5的新特性,日常开发中常用哪些?参考答案:HTML5相比旧版本,主要新增了语义化标签、多媒体功能、表单新属性、本地存储等核心能力,日常开发高频使用的内容如下:1.语义化标签:解决旧版div布局无结构的问题,提升代码可读性和SEO权重,常用的有header、nav、main、section、article、aside、footer。2.多媒体标签:无需依赖插件,直接支持音视频播放,audio音频标签、video视频标签是项目常用。3.表单升级:新增input类型(number、email、tel、date)、自动校验属性(required必填、pattern正则校验、placeholder提示文字),简化前端表单验证。4.本地存储:新增localStorage(永久存储,手动清除才失效)、sessionStorage(会话存储,关闭页面失效),替代传统cookie的部分存储场景。5.其他常用能力:canvas画布绘图、拖拽API、地理定位、WebSocket长连接。2、div和span的区别是什么?实际开发怎么选用?参考答案:1.布局特性:div是块级元素,独占一行,默认自带宽高属性,可以嵌套任意标签;span是行内元素,不独占一行,随文本并排显示,默认无法设置宽高。2.嵌套规则:div可以嵌套div、span、文本、图片等所有元素;span只能嵌套文本、图片、行内元素,不能嵌套块级元素。3.开发选用原则:页面整体布局、模块划分、区块包裹全部用div;局部文本修饰、文字颜色、字体大小、小段内容样式调整,统一用span。3、HTML语义化的意义是什么?为什么不全部用div写页面?参考答案:HTML语义化就是让标签具备对应的业务含义,标签用途和内容匹配,核心意义有三点:1.代码可读性高:多人协作开发时,通过header、footer、nav等标签就能快速识别页面结构,不用逐行看样式和代码逻辑,降低维护成本。2.利于SEO优化:搜索引擎爬虫可以精准识别页面头部、导航、正文、侧边栏、底部信息,精准抓取核心内容,提升网站搜索排名。3.适配设备兼容:屏幕阅读器、移动端适配工具可以识别语义标签,优化残障人士访问体验,同时符合主流前端开发规范。如果全部用div,所有区块无语义区分,代码臃肿混乱,爬虫无法识别页面层级,后期迭代维护难度极大,是不规范的开发写法。4、cookie、sessionStorage、localStorage三者的区别?参考答案:1.存储大小:cookie容量最小,仅4KB左右;sessionStorage和localStorage可存储5MB左右,容量远大于cookie。2.有效期:cookie可手动设置过期时间,默认浏览器关闭失效;sessionStorage仅当前会话有效,关闭页面/浏览器立即清空;localStorage永久存储,除非手动清除缓存或代码删除,否则一直保留。3.服务端交互:cookie每次会随HTTP请求自动携带到服务端,可用于身份验证;sessionStorage、localStorage仅本地存储,不会主动上传服务端。4.适用场景:cookie用于登录凭证、用户标识;localStorage用于长期保存本地配置、缓存数据;sessionStorage用于临时保存页面会话数据,防止页面刷新数据丢失。二、PHP基础高频面试题(含详细答案)1、简述PHP的变量类型,区分基本类型和复合类型参考答案:PHP变量分为八大类型,分为基本类型和复合类型,日常开发全部常用:1.基本类型(单值变量):-字符串string:文本内容,支持单引号、双引号,双引号可解析变量;-整型int:整数数字;-浮点float:小数数字;-布尔bool:true/false,用于逻辑判断;-空类型null:变量无值、未定义或主动赋值为空。2.复合类型(多值集合):-数组array:支持索引数组、关联数组,是PHP最常用的数据存储结构;-对象object:面向对象开发使用,实例化类生成的对象;-资源resource:打开文件、数据库连接、图片资源等系统资源类型。2、PHP中单引号和双引号的区别?开发如何选择?参考答案:1.变量解析:双引号可以直接解析内部变量,会读取变量值替换输出;单引号纯文本输出,不解析任何变量、常量。2.转义字符:双引号支持\n换行、\t制表符等转义字符;单引号仅支持转义单引号\'和反斜杠\\,其余转义字符无效。3.执行效率:单引号执行速度略快于双引号,无需解析变量和转义符。4.开发规范:纯静态文本、固定字符串统一用单引号;需要嵌套变量、使用换行等转义字符时,再用双引号。3、GET和POST请求的区别?项目中如何选用?参考答案:1.数据传递方式:GET参数拼接在URL地址栏中;POST参数放在请求体中传输。2.数据长度限制:GET有URL长度限制,无法传输大量数据;POST无长度限制,可传输大数据、文件。3.安全性:GET参数暴露在地址栏,会被浏览器记录缓存,安全性低;POST参数隐藏传输,不易泄露,安全性更高。4.缓存特性:GET请求会被浏览器默认缓存,重复请求会读取缓存数据;POST默认不缓存,每次都是全新请求。5.开发选用:查询数据、列表筛选、分页、搜索等只读操作,用GET;登录、注册、提交表单、上传文件、修改删除数据等写操作,必须用POST。4、PHP中session和cookie的区别及使用场景参考答案:1.存储位置:cookie数据存储在客户端浏览器;session数据存储在服务端服务器,客户端仅保存一个session_id标识。2.安全性:session安全性更高,核心数据存在服务端,无法被客户端篡改;cookie数据可被用户查看、修改、清除,安全性较差。3.存储容量:cookie容量小,仅4KB;session无容量限制,可存储大量用户数据。4.生命周期:cookie可自定义过期时间;session默认浏览器关闭失效,也可手动设置有效期。5.核心场景:cookie用于记住密码、保存用户偏好、长期标识用户;session用于登录状态维持、用户临时信息存储、后台权限校验等核心业务。5、PHP数组遍历的常用方法及区别参考答案:日常开发最常用四种遍历方式,适配不同场景:1.for循环:仅适用于索引数组,需要手动定义循环起始值和长度,灵活性低,项目中使用较少。2.foreach循环:PHP遍历数组首选,支持索引数组、关联数组,无需判断数组长度,可遍历键和值,语法简洁,适配90%的遍历场景。3.while+each+list:可以遍历关联数组,但each函数已被废弃,新版本PHP不推荐使用,仅老旧项目可见。4.array_map/array_filter函数式遍历:适合批量处理数组元素、筛选数据,无需写循环结构,代码简洁,适合数据处理场景。6、简述PHP面向对象的三大特性及实际应用参考答案:PHP面向对象三大特性:封装、继承、多态,是项目模块化开发的核心基础。1.封装:将属性和方法封装在类中,通过访问修饰符(public、protected、private)控制权限,隐藏内部核心逻辑,仅暴露可用接口。实际应用:数据库操作类、工具类封装,防止核心代码被随意篡改。2.继承:子类可以继承父类的属性和方法,实现代码复用,减少重复代码。实际应用:定义公共基础控制器、公共模型,所有业务控制器继承基础类,统一使用公共登录校验、数据返回方法。3.多态:子类重写父类方法,同一个方法在不同子类中实现不同逻辑。实际应用:不同支付方式(微信、支付宝)继承统一支付父类,重写支付、回调方法,适配不同业务逻辑。7、PHP常见的超全局变量及用途参考答案:超全局变量在页面任意位置均可调用,无需全局声明,项目高频使用如下:1.$_GET:获取地址栏GET方式提交的所有参数;2.$_POST:获取表单POST方式提交的所有数据;3.$_REQUEST:兼容获取GET、POST、COOKIE数据,开发中不推荐滥用,优先级混乱;4.$_SESSION:获取/设置服务端会话数据,维持登录状态;5.$_COOKIE:获取客户端cookie数据;6.$_FILES:获取文件上传的所有信息(文件名、大小、临时路径);7.$_SERVER:获取服务器信息、请求头、请求方式、访问IP、脚本路径等。8、PHP如何防止SQL注入?实际项目实操方法参考答案:SQL注入是通过拼接恶意SQL语句篡改、查询数据库数据的攻击方式,项目中主要通过四种方式防护:1.使用预处理语句(PDO/MySQLi预处理):参数绑定方式传递数据,杜绝SQL拼接,是最核心、最有效的防护手段。2.过滤用户输入:对用户提交的所有参数进行过滤、转义,去除特殊符号、SQL关键字,禁止非法字符传入数据库。3.关闭数据库错误提示:线上环境隐藏SQL错误信息,防止攻击者通过报错获取数据库结构。4.最小权限原则:数据库账号仅授予查询、新增、修改等必要权限,禁止使用root最高权限连接项目数据库。三、PHP+HTML综合实操面试题1、写出简单的HTML表单+PHP接收提交数据的完整代码参考答案:php
<!DOCTYPEhtml>
<htmllang="zh-CN">
<head>
<metacharset="UTF-8">
<title>表单提交示例</title>
</head>
<body>
<!--HTML表单,POST提交到当前页面-->
<formmethod="post"action="">
用户名:<inputtype="text"name="username"placeholder="请输入用户名"><br/>
手机号:<inputtype="tel"name="phone"placeholder="请输入手机号"><br/>
<inputtype="submit"value="提交数据">
</form>
<?php
//PHP接收表单提交数据
if(!empty($_POST)){
//接收数据并简单过滤
$username=trim($_POST['username']);
$phone=trim($_POST['phone']);
//简单校验
if(empty($username)){
echo'用户名不能为空!';
exit;
}
if(!preg_match('/^1[3-9]\d{9}$/',$phone)){
echo'手机号格式错误!';
exit;
}
//输出提交结果
echo"提交成功!用户名:{$username},手机号:{$phone}";
}
?>
</body>
</html>2、PHP文件上传实现核心思路及注意事项参考答案:核心实现思路:1.HTML表单设置enctype="multipart/form-data",否则无法传输文件;2.通过$_FILES获取文件的临时路径、原名、大小、类型;3.校验文件格式、大小,过滤非法文件;4.重命名文件,防止同名文件覆盖;5.通过move_uploaded_file将临时文件移动到项目正式存储目录。注意事项:1.必须限制文件后缀,禁止php、exe、jsp等可执行文件上传,防止木马植入;2.限制文件大小,避免超大文件占用服务器资源;3.上传目录设置禁止执行脚本权限;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025~2026学年辽宁大连市沙河口区北师大版五年级上册数学阶段学情自测卷【附答案】
- 2025~2026学年广东省广州市从化区人教版六年级上册自主练习二数学试卷【附答案】
- PETS5(全国英语等级考试五级)题型详解及参考答案说明
- 车库吊装起重指挥司索工规程
- 2026年幼儿园语言试题及答案
- 铆工高级工培训试题及答案
- Oracle数据库笔试真题(企业实战版)
- 鼻肠管移位风险预防护理实施方案共识
- 高校实验室安全管理方案
- 山西临汾霍州三中2027届数学八上期末达标测试试题含解析
- 2026年继续教育公需课考试试题及答案
- 2026年浙江省嘉兴市国家职业技能鉴定考评员试卷含参考答案
- 骆驼基因组解析:探索其癌症相关基因的奥秘与启示
- 2026-2030中国咖啡生豆行业竞争格局及消费趋势预测报告
- 2026年江西中考物理试题【含答案解析】
- 医疗美容行业介绍
- (完整版)冬季施工专项施工方案
- 2024年全国职业院校技能大赛高职组(检验检疫技术赛项)考试题库(含答案)
- 社区口腔健康促进的多学科协作策略
- 液化气送气工培训课件
- 消防队伍有限空间救援管理制度
评论
0/150
提交评论