PHP工程师面试题+笔试题网页狗修炼手册

输出b,if中的空值赋值给$num,因此if条件必定为false,还有其他一些大同小异的题目,用=和==判断for循环的,只要把握好基本的概念就行了

isset()和empty()函数的区别在于,前者只验证一个值是否存在,后者在此基础上还会检验它的值是否非空和非0注:empty()只检测变量,检测任何非变量的东西都将导致解析错误isset()判断一个变量是否已经设置当设置一个变量值为0,empty()认为这个变量同等于空,即相当于没有设置

可以定义一个变量,设置值为'',0,null,'aaa'几种不同情况下,用if判断empty、isset看看结果

确定是文件夹——打开文件夹(产生dh句柄)——循环读取文件夹内容(读取句柄的内容,即为file/folder)——递归读取上一步判断为folder且文件夹不为'.'或者'..'的文件夹内容

$dir="D:/www/project/";functionreadDirectory($dir){if(is_dir($dir)){//if($dh=opendir($dir)){while(($file=readdir($dh))!=false){if(is_dir($dir.$file)&&$file!="."&&$file!=".."){echo$dir.$file."
";readDirectory($dir.$file."/");}}closedir($dh);}}}readDirectory($dir);>

functionvalid(){$data=$_GET['data'];if(!$data){$res['ret']=1;$res['msg']='fail';echojson_encode($res);}$str=$data['Time'].'+'.$data['param'];if($data['token']!=md5($str)){$res['ret']=1;$res['msg']='fail';echojson_encode($res);}else{$res['ret']=0;$res['msg']='success';echojson_encode($res);}}其实今天笔试的时候做这道题忘了怎么返回json格式的数据了,就直接用了Thinkphp的ajaxReturn,后来回来的时候查了一下才知道原来直接echo,这么简单,框架还是为辅吧,要多写原生。今天笔试的是一家手游公司,对数据库操作和原生要求比较多。

第一种方式:在每个超链接上添加一个PHPSESSID=$sid

//防止返回初始页产生新的session

if(isset($_GET["PHPSESSID"])){session_id($_GET["PHPSESSID"]);}//启动一个sessionsession_start();//获取当前session的session_id()$sid=session_id();//在每个链接上添加参数PHPSESSID=$sid其他页面的获取方式为:if(isset($_GET["PHPSESSID"])){//设置当前的session为初始的session,session_id()一致即可session_id($_GET["PHPSESSID"])}session_start();第二种方式:使用SID常量替换链接上的PHPSESSID=$sid(SID的值类似:PHPSESSID=sddg34r593dfdlksrewr)

分布式缓存了解一下

notice、warning、error、exception等————————————————

还有其它常见的就

(7)字符集的转换:客户端或者应用程序使用的字符集可能和数据库使用的字符集不一致,需要在mysql运行过程中隐含转化(8)模糊查询优化:使用FULLTEXT全文搜索(注意前提是MyISAM存储引擎)FULLTEXT解析器用“”(空格)、“,”(逗号)“.”(点号)作为默认的单词分隔符,因此对于不使用这些分隔符的语言如汉语来说,FULLTEXT解析器不能正确的识别单词,对于这种情况需做额外处理。(9)尽量满足范式(有的情况下要用反范式)下面是三大范式的区别,也要去看一下第一范式:数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。如果实体中的某个属性有多个值时,必须拆分为不同的属性

第二范式:满足第一范式前提,当存在多个主键的时候,才会发生不符合第二范式的情况。比如有两个主键,不能存在这样的属性,它只依赖于其中一个主键,这就是不符合第二范式

![clipboard.png](/img

第三范式:满足第二范式前提,如果某一属性依赖于其他非主键属性,而其他非主键属性又依赖于主键,那么这个属性就是间接依赖于主键,这被称作传递依赖于主属性。

(1)MyISAM强调性能,其执行速度比InnoDB类型更快,但不支持事务,而InnoDB提供事务支持以及外部键、行级锁等高级数据库功能(2)如果增删改操作比较多,或者需要事务支持,则使用Innodb,如果是读的操作比较多,则使用Myisam(3)MyISAM表锁,Innodb行锁

(1)memcached只能使用简单的key-value形式进行存储,而redis还支持hash,list,set等等。因此需要其他的数据类型支持的时候用redis更方便(2)memcached是多核,redis是单核,所以在存储小数据上redis性能更高,反之大数据上memcached的性能比redis要高(3)memcached不支持持久化操作,数据不能备份,只能用于缓存使用,重启后数据全部丢失。redis支持持久化操作可以数据备份和数据恢复(4)redis只能使用单线程,性能受限于cpu性能,memecached是多线程

Atomicity原子性:事务是一个不可分割的工作单位,要么都发生要么都不发生Consistency一致性:必须使数据库从一个一致性状态变换到另外一个一致性状态(即开启一个事务之后不能再开启一个事务,除非提交或者新建一个线程)Isolation隔离性:多个用户并发访问数据库时,数据库为每个用户开启的事务不能被其它事务的操作数据干扰,多个并发事务之间要相互隔离Durability持久性:未commit之前可以回滚,一旦commit对数据的改变就是永久性的事务保存点

可以设置多个保存点savepointa;savepointb;savepointc;但是回退需要按照顺序回退,即如果回退rollbacktob;c保存点就不存在了

①读未提交(readuncommitted)setsessiontransactionisolationlevelreaduncommitted②读已提交(readcommitted)setsessiontransactionisolationlevelreadcommitted③可重复读(repeatableread)系统默认的隔离级别setsessiontransactionisolationlevelrepeatableread④可串行化(serializable)(独占某个线程的时候使用,直到A程序commit后B程序才能成功update,在那之前是在队列中)setsessiontransactionisolationlevelserializable隔离程度,从上到下越来越强

①脏读:一个事务读取另一个事务尚未提交的修改②不可重复读:同一查询在同一事务中多次进行,由于其他提交事务所做的修改或删除,每次返回不同的结果集③幻读(虚读):同一查询在同一事务中多次进行,由于其他提交事务所做的插入操作,每次返回不同的结果集

functiongetDepth($arr){

$max_depth=1;foreach($arras$key=>$val){if(is_array($val)){$depth=getDepth($val)+1;if($depth>$max_depth){$max_depth=$depth;}}}return$max_depth;}

获取input标签中的good属性值所用的函数是getAttribute("good")

用ajax方法,把请求返回的参数(格式是json)填充到table中,以表格形式列出21号下午一道笔试题,因为需要联系上文有点麻烦,大概讲一下思路吧,主要是考察对jq的ajax函数还有其他一些jq函数的熟悉程度,我直接上代码

755rwxr-xr-x代表含义:第一位7等于4+2+1,所以就是rwx,所有者有读取、写入、执行的权限第二位5是4+1,r-x,同组用户具有读取、执行权限,第三位5,代表其他用户有读取、执行的权限。从左至右,1-3位代表文件所有者的权限,4-6位代表同组用户的权限,7-9代表其他用户的权限。

雪碧图cssspirites前端自动构建工具打包图片使用base64编码②启用浏览器缓存和文件压缩

把一些前端资源文件放到cdn中,还可以把数据缓存到cdn节点中cdn原理:④建立独立图片服务器⑤一些不重要的数据,可以做成ajax异步请求,在需要的时候再进行引入、展示,如js、jquery等等

①页面静态化,如smarty②做一些程序上的并发处理,如多线程多进程的异步处理、队列处理等③队列处理

①数据库缓存(memcacheredis等)②分库分表、分区操作

垂直拆分、水平拆分分区③读写分离

把一些服务器、一些数据完全分开一些服务器做读操作(查询)一些服务器做些操作(增删改)④负载均衡⑤索引、高并发安全问题加锁

使用nginx的反向代理来实现负载均衡4.负载均衡七、其他1.遇到问题时怎么解决(错误日志)我回答的时候举了做项目的时候的例子,先缕一下思路。因为后台这一块,只要思路缕清了,在纸上写出来,接下来一步一步去debug,不断var_dump、print_r、echo,最后exit()一下,其实很好debug后来发现面试官想问的其实不是这个,而是错误日志,今天特意去搜了一下,研究了一个下午终于会一点点

首先开启错误日志,配置php.inierror_reporting=E_ALL;将会向PHP报告发生的每个错误,包括ERROR、NOTICE、WARNING等等display_errors=Off;本地测试开启,项目上线要关闭,防止服务器重要信息泄露log_errors=On;开启错误日志log_errors_max_len=1024;设置每个日志项的最大长度error_log=/www/phpernote/error.log;指定产生的错误报告写入的日志文件位置

网页输出的内容:

sql注入:利用用户输入揣测sql语句

解决方案:addslashes、stripslashes函数、预处理绑定xss攻击(跨站脚本攻击):,一种通过嵌入或者发布含有恶意脚本的链接,另一种是通过将恶意脚本提交到被攻击网站的数据库中

解决方案:strip_tags()、htmlspecialchars()、htmlentities()等函数CSRF(跨站请求伪造):利用用户在其它网站的cookie或session伪造请求

解决方案:判断请求ip是不是来自本服务器;上面的防范xss攻击的方法也可以使用mysql数据库备份、主从分离

手动分割线在上面提到的内容,其实有一些可以自己去拓展看一下的,比如提到innodb和myisam,前者是使用行锁,后者是使用表锁,那可以去拓展一下,什么是表锁什么事行锁,逐渐增大自己的知识面

先更新到这,明天还得去招聘会碰壁...2017/03/18

先写到这里。前两天跑了广工招聘会,今天有一家联系明天面试了,继续去撞壁...2017/03/20

七月底裸辞了,顺便考了驾照,潇洒了一阵子。但是辞职时有多洒脱,现在就有多焦虑,找工作还是需要看缘分,不知道以后会不会继续做技术,还是觉得自己对技术没有太多的天分,很多东西还是比较文科生思维,希望能确定一份好的offer吧,期待那一声铃响。2019/10/21

THE END
1.如何建php网页,怎么用PHP编网页3. php+mysql的基础知识 4. 上面都会了就可以很快搭建一个网站 5. 本地调好,就买一个外网空间,页用迁移过去就可以在哪儿都能访问了当然,何建如果说你就建一个很简单的网网页展示型网站,不需要深学php也行,页用有很多开源的何建cms程序,可以快速搭建网站。网网页所有东西都得一步步来的页用 ...http://yj64.com/youhua/21f716792811.html
2.怎么用php写一个网页PHP问题怎么用php写一个网页 在web服务器根目录下建立一个文件名为index.php的文件,然后完成如下内容: 第一个php网页 <?php echo 'Hello World'; ?> 在浏览器的地址栏里输入 web 服务器的 URL 访问这个文件。如果本地开发,那么这个 URL 一般是 http://localhost/index.php 或者 http://127.0.0.1/index....https://m.php.cn/faq/434209.html
3.如何用php做一个简单的网页问答要用PHP制作一个简单的网页,首先需要准备一个Web服务器和一个数据库(如果需要的话),然后按照以下步骤进行操作:1. 创建一个新的PHP文件,比如index.php。2. 在index.php...https://www.yisu.com/ask/3624009.html
4.PHP常用代码大全echo " ... ?"; for($i=$startpage;$i<=$endpage;$i++) { if($i==$page) echo " [".($i+1)."] "; else echo " ".($i+1)." "; } if($endpage<$pages) echo "? ... "; if($page<$pages) echo "尾页"; }https://www.imooc.com/article/37625
5.个人网站制作设计备案如何建立个人网站02-16个人网站不备案可以吗,个人网站备案是怎么个 12-03网站备案教程,网站备案步奏,个人和企业网站如何 查看更多 0203月 网站建设公司告诉您网页设计时注意的四件事 网站首页 : 这个是访客第一眼见到的页面,非常的重要,页面设计的好坏决定了访客对整体网站的印象。首页上不应有任何 ...http://www.2mmgg.cn/
6.PHP教程,PHP入门教程,PHP学习,PHP程序员,PHP网站,PHP视频教程...PHP粉丝网提供PHP教程,PHP入门教程,PHP学习,PHP程序员,PHP网站,PHP视频教程,Mysql教程,CMS教程,适合初学者循序渐进学习PHP,是一个值得PHP新手学习收藏的网站.http://www.phpfensi.com/
7.五一网51游戏好玩的游戏社区化平台玩游戏,上51.COM。51游戏是国内知名的网页游戏社区化平台,集游戏研发运营、真人交友、博客空间、美女主播等娱乐业务为一体,51游戏只做口碑最好的网页游戏运营和客户服务。https://www.51.com/
1.php网站开发模板阿达幸运的是,通过使用PHP网站开发模板,即使是没有深厚编程背景的人也能够迅速创建出美观且功能强大的网站。这里所说的“PHP网站开发模板”指的是预先设计好的一系列网页文件和数据库结构,它们遵循了PHP语言规范,并包含了常见的网站元素如导航栏、文章列表等,为用户提供了一个易于定制的基础框架。https://blog.csdn.net/mynote/article/details/143851311
2.PHP做的网站怎么实现中文和英文繁体中文语言切换?(php网页切换...大家好,今天小编关注到一个比较有意思的话题,就是关于php网页切换怎么写的问题,于是小编就整理了2个相关介绍为您解答,让我们一起看看吧。 (图片来源网络,侵删) PHP做的网站怎么实现中文和英文、繁体中文语言切换? 在PHP网站中,我们要实现不同语言的切换,可以使用二维数组把不同的语言分别储存在二维数组的单个子数...https://www.shiwaiyun.com/article/post/43888.html
3.怎么在云服务器上用浏览器云服务器做网页怎么在云服务器上用浏览器 云服务器做网页 记录小白的第一次云服务器搭建网站 前言 配服务器 装Apache 装php PHP和apache的联系设置 装mysql 装phpadmin(可不装) 要点 前言 由于公司要求,我要去局域网上做一个网页,所以我先在互联网上练手。 公司要求,该网页实现图片轮播,部分图片是公共的,部分图片各部门自行...https://blog.51cto.com/u_16213567/9273047
4.PHP编写网页教程(php网页编辑)服务器技术PHP编写网页教程(php网页编辑) PhP的网站要怎么搭建呢? 1、下载PHP解释器,从PHP网站下载适合您操作系统的PHP解释器,解压并安装到本地计算机。安装Web服务器,选择一种Web服务器,如Apache、Nginx等,并将其安装到本地计算机上。您可以在Web服务器的官方网站上找到安装指南和文档。https://www.kangle.im/post/111728.html
5.PHP实现HTML页面静态化的方法php技巧不过中小型网站还是做成纯静态的比较,这样做的优点是很多的。而动态网站又是怎么进行静态处理的? 页面静态化是指将动态页面变成html/htm静态页面。动态页面一般由asp,php,jsp,.net等程序语言编写而成,非常便于管理。但是访问网页时还需要程序先处理一遍,所以导致访问速度相对较慢。而静态页面访问速度快,却又不便于...https://www.jb51.net/article/74342.htm
6.网页设计新津网站制作php网站要实现一个不错的网站怎么做 青岛网站建设,网站制作php网站要实现一个不错的网站,首先就必须让网站具有一些的功能,例如用户登录,在线留言,信息发布等等,而这些功能则必须同网站后台站程序来实现,因此在这里涉及到了程序语言。 092020-04 ...http://www.eoebiz.com/xinjin_changjianwenti/
7.十八岁自学少年:我的个人网站是怎么做出来的优设网后来发现 iPhone 等小屏幕 Retina 设备不需要使用针对 Retina Macbook / iPad 制作的大尺寸图片,只要将普通尺寸的图片缩小即可,所以再给 JS 增加了检测 screenwidth,PHP 再做相应的调整,提高了小屏幕 Retina 设备的加载速度。 响应式处理 其实我在响应式设计开始流行之前,就已经在试着应用了,到现在可以说已经比较...https://www.uisdc.com/dandyweng-designer
8.如何创建网站,php如何创建网站将想法与焦点和您一起共享 如何创建网站,php如何创建网站 如何创建 one 网站?如何创建 own 网站?如何创建网站?创建自己的网站怎么样?自己怎么做创建One网站Yourself创建-1/步骤如下:电脑:MacBook系统:OSX10.91,使用电脑自带的IE浏览器,然后百度搜索自助网站,然后找到。2.确定网站Theme网站的主题方向非常重要,你建立...http://chengdu.cdxwcx.cn/article/ephhih.html
9.网页设计实习总结总结是事后对某一阶段的学习、工作或其完成情况加以回顾和分析的一种书面材料,它有助于我们寻找工作和事物发展的规律,从而掌握并运用这些规律,不如我们来制定一份总结吧。那么我们该怎么去写总结呢?下面是小编为大家整理的网页设计实习总结,希望对大家有所帮助。 https://www.unjs.com/fanwenwang/shixizongjie/20230514082421_7080659.html
10.php学习心得范文(通用14篇)你会HTML吗?会,我能编好几个大表格排板的网页啦! 你会PHP吗?会,我会把一加一的运算写在函数里,然后调用啦! 你会MYSQL吗?会,我会把我的信息在数据库里插入删除啦 那,接下来你该怎么做呢?我觉得,小试一下身手,大概是没问题了,那么交给你个任务,做个留言本吧,这和HELLO WORLD有一比啊!同是新手面临的...https://www.yjbys.com/edu/PHP/471525.html
11.php网站程序开发php程序开发华为云为你分享云计算行业信息,包含产品介绍、用户指南、开发指南、最佳实践和常见问题等文档,方便快速查找定位问题与能力成长,并提供相关资料和解决方案。本页面关键词:php网站程序开发。https://www.huaweicloud.com/theme/227715-1-P-undefined
12.php和htmlphp和html交互PHP和HTML交互的优势在于,它可以让网页更加动态和交互性。通过PHP,我们可以动态地生成HTML代码,根据用户的输入或者其他条件来生成不同的网页内容。这种交互性可以增加网站的用户体验,提高用户的粘性和留存率。 如何在HTML中嵌入PHP代码 在HTML中嵌入PHP代码非常简单,只需要在HTML代码中使用PHP标记即可。PHP标记的格式为,...https://www.nzw6.com/25743.html
13.HTML5移动网站制作教程2、所要在手机端做滑动效果的部位(html代码部分) aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbb cccccccccccccccccccccccccccc ddddddddddddddddddddddddd 复制代码 3、js代码块(改代码会在动在要加滑动效果的html代码块中自动生成一块代码) ...https://www.thinkphp.cn/extend/461.html