归纳整理39道PHP面试题(总结分享)php教程

这个问题的核心是域名解析和服务器(nginx)解析这两部分,基本上这两部分详细阐述就可以了。

步骤一、解析URL

浏览器会解析当前的URL数据,判断此URL是否为合法的链接。如果是合法链接则正常的向下一步骤前进。如果不是合法的链接,则会执行搜索功能,例如执行百度、360、Google搜索等。

步骤二、解析域名

服务器是以ip的形式存在的。而域名需要解析到ip上,解析IP会有三个小的步骤:

1)、从浏览器自身的缓存中解析此域名数据

2)、从本地电脑的HOST文件中解析域名

3)、通过DNS服务器解析域名

步骤三、拿信息

这个步骤我们拿到了URL的信息,主要是IP和端口信息。

步骤四、封包并进行三次握手

浏览器将请求信息进行打包,通过TCP的三次握手将数据传递至服务器。

步骤五、服务器解析、处理、返回数据

服务器通过种种层级、方式拿到传递的数据,对数据进行分析、处理,最后返回响应类MIME类型数据。正常状态码为200,非正常的错误码有404、500、501等等

步骤六、浏览器获得、渲染、展现数据

浏览器从服务器拿到数据、通过加载资源、渲染页面等操作,将页面展现给用户。

2)、SESSION存储在服务器端,COOKIE保存在客户端。Session比较安全,cookie用某些手段可以修改,不安全。Session依赖于cookie进行传递。

禁用cookie后,session不能正常使用。Session的缺点:保存在服务器端,每次读取都从服务器进行读取,对服务器有资源消耗。Session保存在服务器端的文件或数据库中,默认保存在文件中,文件路径由php配置文件的session.save_path指定。Session文件是公有的。

一二三四五原则:一.消息系列二成功系列三.重定向系列四.请求错误系列五.服务器端错误系列

Tar.gz:

打包:tarczffile.tar.gzfile.txt

解压:tarxzffile.tar.gz

Bz2:

打包:bzip2[-k]文件

解压:bunzip2[-k]文件

Gzip(只对文件,不保留原文件)

打包:gzipfile1.txt

解压:gunzipfile1.txt.gz

Zip:-r对目录

打包:zipfile1.zipfile1.txt

解压:unzipfile1.zip

MyISAM类型不支持事务,表锁,易产生碎片,要经常优化,读写速度较快,而InnoDB类型支持事务,行锁,有崩溃恢复能力。读写速度比MyISAM慢。

创建索引:alerttabletablenameaddindex(`字段名`)

理解:session_start()开启时,生成一个常量SID,当COOKIE开启时,这个常量为空,当COOKIE关闭时,这个常量中存储了PHPSESSID的值。通过在URL后加一个SID参数来传递SESSIONID的值,从而使客户端页面可以使用SESSION里面的值。当客户端开启COOKIE和服务器端开启SESSION时。浏览器第一次请求,服务器会向浏览器端发送一个COOKIE里面存储SESSIONID.当浏览器第二次请求时,会把已存在

Isset判断变量是否存在,可以传入多个变量,若其中一个变量不存在则返回假,empty判断变量是否为空为假,只可传一个变量,如果为空为假则返回真。

答:主要有两种方式:

1)快照持久化

在redis配置文件中已经自动开启了,

格式是:saveNM

表示在N秒之内,redis至少发生M次修改则redis抓快照到磁盘。

当然我们也可以手动执行save或者bgsave(异步)命令来做快照

2)appendonlyfileAOF持久化

总共有三种模式,如

appendfsynceverysec默认的是每秒强制写入磁盘一次

appendfsyncalways每次执行写操作的时候就强制写入磁盘

appendfsyncno完全取决于os,性能最好但是持久化没法保证

其中第三种模式最好。redis默认的也是采取第三种模式。

答:常用的主要分为两种,一种是innodb,一种是myisam,两者的主要区别是

1)myisam不支持事务处理,而innoDB支持事务处理

2)myisam不支持外键,innoDB支持外键

3)myisam支持全文检索,而innoDB在MySQL5.6版本之后才支持全文检索

4)数据的存储形式不一样,mysiam表存放在三个文件:结构、索引、数据,innoDB存储把结构存储为一个文件,索引和数据存储为一个文件

5)myisam在查询和增加数据性能更优于innoDB,innoDB在批量删除方面性能较高。

6)myisam支持表锁,而innoDB支持行锁

答:SQL注入攻击指的是用户或者黑客通过构建特殊的输入作为参数传入我们的Web应用程序端,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序员没有细致地过滤用户输入的数据,致使非法数据侵入系统而造成的。因此我们在做开发过程中一定要预防sql注入,主要从两方面着手:

1)占位符的方式,就是对sql语句进行预处理,然后执行sql语句

2)通过addslashes或者mysql_real_escape_string这两个函数对用户输入的值进行转义处理,把一些特殊的字符转义掉。

答:用过,PDO类中,有个prepare方法可以实现预处理,PDOStament类中的excute方法可以执行预处理,预处理的参数分为两种,一种是:字符串占位符,另一种是占位符,:字符串占位符在执行预处理传递参数时传入的是关联数组,而占位符传递的是索引数组。两者不能混合使用,但一般推荐使用:字符串占位符。

答:一般成熟的开源框架中都考虑到了数据安全这方面的东西,但有时候我们可能会使用一些原生的SQL语句时,我们就需要考虑自己对sql语句进行预处理。当然有时候框架中的过滤方法我们不希望采用,比如使用文本编辑器时,我们可以使用自己的过滤方式。

答:mysql优化主要从以下几个方面来实现:

1)设计角度:存储引擎的选择,字段类型选择,范式

2)功能角度:可以利用mysql自身的特性,如索引,查询缓存,碎片整理,分区、分表等

3)sql语句的优化方面:尽量简化查询语句,能查询字段少就尽量少查询字段,优化分页语句、分组语句等。

4)部署大负载架构体系:数据库服务器单独出来,负载大时可以采用主从复制,读写分离机制进行设计

5)从硬件上升级数据库服务器。

按值传递:函数范围内对值的任何改变在函数外部都会被忽略

按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改

优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。按引用传递则不需要复制值,对于性能提高很有好处。

设置PHP的报错级别并返回当前级别。

原理:快速排序使用分治策略来把待排序数据序列分为两个子序列,具体步骤为:

(1)从数列中挑出一个元素,称该元素为“基准”。

(2)扫描一遍数列,将所有比“基准”小的元素排在基准前面,所有比“基准”大的元素排在基准后面。

(3)通过递归,将各子序列划分为更小的序列,直到把小于基准值元素的子数列和大于基准值元素的子数列排序。

B)MySQLDatabase

C)SharedMemory

D)FileSystem

E)SessionServer

答:原因是:中文是由多字节组成的,而只有英文系统的单个英文字符只有一个字节,所以该系统把中文的每一个字节都做了strtolower()处理,改变后的中文字节拼接在一起就成了乱码(新生成的编码映射对应的字符可能就不是中文了)

手动解决:用str_split(stringstring,intstring,intsplit_length=1)按每个字节切割,像中文能切割成三个字节。对识别到的字节若是英文字母则进行转换。

2)在Unix中,当php配置文件中开启safe_mode时(safe_mode=on),is_writeable()同样不可用。读取配置文件是否safe_mode是否开启。

1)屏蔽错误,将display_errors设置为off2)过滤用户提交参数,这里需要注意的是不能仅仅通过浏览器端的验证,还需要经过服务器端的过滤

答:由于–enable-cli和–enable-cgi同时默认有效,因此,不必再配置行中加上–enable-cli来使得CLI在makeinstall过程中被拷贝到{PREFIX}/bin/php

答:PHP可以自动进行内存管理,清除不再需要的对象。PHP使用了引用计数(referencecounting)这种单纯的垃圾回收(garbagecollection)机制。每个对象都内含一个引用计数器,每个reference连接到对象,计数器加1。当reference离开生存空间或被设为NULL,计数器减1。当某个对象的引用计数器为零时,PHP知道你将不再需要使用这个对象,释放其所占的内存空间。

看看你的服务的访问日志,在防火墙中加过滤,或者在web服务器中加过滤吧。方法有以下几种。

是消耗服务器资源为主还是纯流量攻击?消耗资源的可以通过配置防火墙过滤规则防御中小规模的攻击。如果是纯流量攻击,考虑你用的是linode真心无解。即便你封了IP封了端口也没用,人家不管你接不接受他的请求,他都会塞满你的带宽。linode必然认为你是被流量攻击或者消耗过多资源然后给你挂起。

1)索引的目的是什么

2)索引对数据库系统的负面影响是什么

3)为数据表建立索引的原则有哪些

4)什么情况下不宜建立索引

单引号不能解释变量,而双引号可以解释变量。

单引号不能转义字符,在双引号中可以转义字符。

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

THE END
1.焦点访谈您打过12345吗?看一条热线如何撬动大城之治时政北京市政府副秘书长、北京市政务服务和数据管理局局长 沈彬华:接,体现一种职责、义不容辞的职责;诉,是老百姓对美好生活的向往;即,体现雷厉风行的行动;办,体现扎扎实实的担当和作为。短短4个字,共同为一个事情,为习近平总书记说的人民城市为人民这一个理念,接诉即办给了12345这条热线新的生命力。 https://www.workercn.cn/c/2024-12-18/8417302.shtml
2.12345便民热线“治乱”更要“治懒”政府惠民惠企齐鲁网·闪电新闻12月19日讯 “有事找政府,就拨12345”这句宣传语,大家都非常熟悉。12345政务服务便民热线搭建起了政府与群众密切联系的桥梁,不过这条惠民惠企的热线,近年来也遇到了棘手的问题,“有事找政府”变成了“啥事都找政府”。12345热线运行多年之后,政府、群众双方该如何用好这个热线,也成了当下人们探讨https://www.163.com/dy/article/JJPS8QQ70514CFC7.html
3.您的问题,我们来帮!12345热线工作总结一、热线的基本情况 12345热线作为政府服务的窗口,设立以来一直致力于为市民提供便捷的咨询和投诉渠道。热线开放时间为每天的24小时,无论是白天还是夜晚,市民均可随时拨打,获取专业的服务和帮助。 二、服务内容与范围 热线服务内容涵盖了民生、交通、环境、社会、卫生等多个领域,主要包括: https://bbs.wps.cn/cms/Ff159cnS.html
4.www.scmc一个致命的违规操作,酿成了十人以上的重大伤亡事故,再次以血的代价警醒所有人——违规施工猛于虎,容tutu12345美女写真极品 121.76MB 3683好评 9191在线观看 陈可心草原精灵爱豆 kino.xxn.cikix 43.82日本生产日期编号 对照表 2018 05.92MB 08%好评89人) waswaswaskino_手机搜狐网央视发声_凤凰网 http://www.scmc-xa.com/xxxr/492000.htm
5.政务公开上海杨浦(一)从事市场监管执法的人员应当具备相应的法律知识和专业技能,并经考试合格,取得行政执法资格。没有取得行政执法资格的人员不得从事行政执法行为。 (二)行政执法人员从事市场监管执法,应当按照有关规定着识别服装,仪表整洁、语言文明、举止得体、方式得当。 https://www.shyp.gov.cn/yp-zwgk/zwgk/buffersInformation/details?id=790b4b2c-76f6-4e7e-9685-4a6cb830ed81
6.粤长辉龙岗德沁苑商住楼施工组织设计雅居云录目录 第一章 编制依据 9 第一节 施工图纸及相关文件 10 第二节 主要法律、法规和相关企业文件 10 第三节 主要引用的规范、规程和标准图集 11 一、建筑、结构类 11 二、给排水、通风、电气类 12 三、安全类 12 第二章 工程概况 13 第一节 工程简述 13 一、工程参建单位 13 https://yajuyun.com/cms/2024/12/13/53860/
7.PythonPython学习笔记pythonunicodedammit以双下划线开头和结尾的标识符代表python里特殊方法的专用标识符,如:__init__()代表类的构造函数。 2.保留字符 3.代码块 python与C系列语言最大的不同就是python没有了{}囊括的代码块,而采用了缩进来表示代码块,即在一个代码块中的代码采用同等数量的数量的缩进,缩进的数量按空格的数量计算,采用同一缩进量的https://blog.csdn.net/qq_39108291/article/details/114358887
8.研发kpi绩效考核方案(精选13篇)项目绩效以项目完成情况进行考核,项目绩效在项目完成后一个月内进行评审,并发放奖金,长周期项目设置项目关键节点进行评审。具体操作方案如下: 4.1项目绩效 4.1.1研发项目以项目负责人负责的形式进行工作;为检验项目研发的成果及效益,为项目维护及改善提供依据,设立项目绩效考核制度。 https://www.ruiwen.com/fangan/6296291.html
9.已经拨打过12345了,但是目前没有给解决方案,而且听说交房日期最少你好,是可以要求进行退房处理的 https://www.64365.com/ask/33551653.aspx
10.excel表格如何自定义单元格格式Excel单元格自定义格式一 一、代码结构组成 结构组成分为四个部分,中间用“;”号分隔,具体如下:【正数格式;负数格式;零格式;文本格式】 二、各个参数的涵义 1、【G/通用格式】:以常规的数字显示,相当于“分类”列表中的“常规”选项。 例: 代码:【G/通用格式】10显示为10;10.1显示为10.1。 2、“0”:数字https://www.jiandaoyun.com/article/post/1211.html
11.当A1填写11月1日,B1填写12345,那么乙表格就会自我一个表中按日期输入数据后,另一个表也自动生成,怎么能实现 比如甲表格A列用来填写日期,B列用来填写数据。乙表格是用来记录累计数据。我想只操作甲表格,当A1填写11月1日,B1填写12345,那么乙表格就会自动在相应单元格显示12345;当第二天我把甲表格A2改为11月2日,B2填写6789时,乙表格会在相应单元格显示6789。84https://www.chinaacc.com/wenda/detail/xt/5990169
12.九种常用输入法特殊符号功能揭密(图)FTXvviR我们可以在极点中文提示条上右击,选择菜单“管理工具→用户码表”来对默认的特殊符号编码进行修改,同时也可以自行添加新的编码。 2.输入中文日期 在极点中文中输入中文日期是非常方便的,其编码格式为分号“;”加上“XXXXnXXyXXr”,其中的X分别代表要输入的年月日数字。例如要输入“二○○五年四月一日”,则键入编码http://blog.chinaunix.net/uid-20777951-id-542915.html
13.VisualBasic程序设计教程第3版第2章VisualBasic语言基础在线日期型表达式由算术运算符“+、-”、算术表达式、日期型常量、日期型变量和函数组成。日期型数据是一种特殊的数值型数据,它们之间只能进行加“+”、减“-”运算。有下面三种情况: 1)两个日期型数据可以相减,结果是一个数值型数据(两个日期相差的天数)。例如: https://fanqienovel.com/reader/7137920410011569193
14.《使用函数计算数据》教案11篇(全文)在Excel中公式的应用十分常见。在教学过程中教师应该反复强调在输入公式过程中首先必须要输入“=”。在课堂上教师可以进行以下案例进行说明, 如果要计算2/10的数值, 那么就首先需要在A1单元格中输入2/10, 如在没有输入等号的情况下将会看到在A1框中是一个日期。而正确的做法是在A2单元格中输入“=2/10”。 https://www.99xueshu.com/w/filegcjrz34u.html
15.铁路知识考试:铁路行车组织考点巩固(强化练习)考试题库75、填空题 货物()是指承运人在规定的地点与收货人进行货物(车)交接后,并在货物运单上加盖货物交付日期戳记,即表示货物运输过程终止的作业程序。 点击查看答案 76、问答题 简述加强铁路通过能力有哪些技术组织措施? 点击查看答案 77、名词解释 限制区间 点击查看答案 78、单项选择题 直通列车是指至少通过一个(http://www.91exam.org/exam/87-1410/1410827.html
16.换开操作流程SHA 15JUL1分别是 原开票城市和签发日期,年的输入只需输1位表示,如PEK03MAR2,表示该票02年3月3日在PEK开票。 6、原出票OFFICE航协号 原出票OFFICE的IATA NUMBER。 7、P1 旅客序号与航协号之间不加“/”。 (二) OI 指令实例 1、使用一张客票来换开 http://web.travelsky.com/etermclouds/html/pri/operator/zzpx/cn/information/convert-cn.html
17.住房工作计划(通用11篇)结合各社区的实际情况,加强档案的建立、完善和指导。对符合条件的廉租住房申报人员建立电子表册,实行一户一档,动态管理,可以在最短的时间内查阅任何一个申请人档案,并根据电子表册将享受实物配租和租赁补贴的廉租住房保障户的档案区分开来,实行廉租住房档案专柜专人管理,确保档案材料规范有序。https://www.unjs.com/fanwenwang/gzjh/20210903184736_4093665.html
18.信息化应用典型案例此外,修路方面也是一个问题,之前的泥路很不方便村民出行,社工介入后,与当地村民与政府协商,最后政府答应出水泥的钱,而项目小区小组组织则发动村民出劳动力去修路,把修路问题解决了。因此不难看出,社工在号召的同时,亦具有一定的指导性。 最后项目的持续性问题,当初社工介入的国际小母牛办带着可持续发展的目标进入该https://www.360wenmi.com/f/file585ilybs.html
19.浙大城市学院2023年新生报到攻略已送达入学须知一、缴费日期 2023年8月15日-25日 二、缴费金额 学校各专业均实行学分制收费,学费由专业学费和学分学费组成并按学年收取。新生入学时,按所录取专业收取专业学费,按每学年40学分收取学分学费。学年结束时,根据所注册专业及实际所修读的学分数结算。毕业学年的学费在学生毕业离校前统一清算,多退少补。学杂费缴费标准https://www.027art.com/zhejiangbenke/HTML/Pb37688148IV76.html