很多站长朋友们都不太清楚php常用扩展面试,今天小编就来给大家整理php常用扩展面试,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php面试题解答 2、 PHP中高级面试题 – 第三天 3、 程序员面试必备PHP基础面试题 – 第十三天 4、 PHP面试都会问什么? 5、 PHP程序员面试都会涉及到哪些问题 php面试题解答1,
var x=document.getElementById("img1");
var title=document.getElementById("img1").title;
var sina_title=document.getElementById("img1").sina_title;
2,serialize(),unserialize();
3,编码方式不同,urlencode()将字串以URL编码。例如空格就会变成加号。
rawurlencode()将url编码成url的字符串专用格式,特殊字符回转换成百分号后面加两个十六子介数字的格式。
4,strip_tags(),html_entity_decode();
5,$str=preg_replace("/\<script.*\>.*\<\/script\>/i","",$str);
6,左连接,左连接的表如果没有匹配的数据不影响结果。
7
SELECT name,score FROM tl_user LEFT JOIN tl_score ON tl_user.ID=tl_score.ID
7 system(),exec(),passthru()
8,json_decode ,json_encode
9 isset() empty()
10 后者的权限大于前者,后者是OFF的话,前者就算是E-ALL也没用。
11,$_SERVER['REMOTE_ADDR'];
12,incov()
echo iconv("gbk",""UTF-8,"我们");
mb_convert_encoding($str, "GBK", "UTF-8")
13 explode() split() ;implode() join()
14 注意事项挺多的,懒得写。
二
1,超时,服务器已经关闭连接
2 静态表字段长度固定,自动填充,读写速度很快,便于缓存和修复,但比较占硬盘,动态表是字段长度不固定,节省硬盘,但更复杂,容易产生碎片,速度慢,出问题后不容易重建。
3InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。
MyIASM是IASM表的新版本,有如下扩展:
二进制层次的可移植性。
NULL列索引。
对变长行比ISAM表有更少的碎片。
支持大文件。
更好的索引压缩。
更好的键吗统计分布。
更好和更快的auto_increment处理。
1.MySQL最大的优势在于MyISAM引擎下的简单SELECT,INSERT和UPDATE快速操作
2.MyISAM类型的数据文件可以在不同操作系统中COPY,这点很重要,布署的时候方便点。
以下是一些细节和具体实现的差别:
1.InnoDB不支持FULLTEXT类型的索引。
2.InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含 where条件时,两种表的操作是一样的。
3.对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引。
4.DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。
5.LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用。
另外,InnoDB表的行锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,例如update table set num=1 where name like “%aaa%”
以暂对存储引擎的认识,觉得 InnoDB 支持外键,在数据量可以用“庞大”来形容时,在有良好的 INDEX 的基础上,InnoDB 的查询速度应该比 MyISAM 要快。
在 Falcon 有稳定版本前,我想 MyISAM 是一个可用的选择方案。
任何一种表都不是万能的,只用恰当的针对业务类型来选择合适的表类型,才能最大的发挥MySQL的性能优势
3, 都是1 ^^懒得回答了,睡觉去。
PHP中高级面试题 – 第三天一、简述一下MongoDB的应用场景
mongodb 支持副本集、索引、自动分片,可以保证较高的性能和可用性。
更高的写入负载
默认情况下,MongoDB 更侧重高数据写入性能,而非事务安全,MongoDB 很适合业务系统中有大量 “低价值” 数据的场景。但是应当避免在高事务安全性的系统中使用 MongoDB,除非能从架构设计上保证事务安全。
高可用性
MongoDB 的复副集 (Master-Slave) 配置非常简洁方便,此外,MongoDB 可以快速响应的处理单节点故障,自动、安全地完成故障转移。这些特性使得 MongoDB 能在一个相对不稳定(如云主机)的环境中,保持高可用性。
数据量很大或者未来会变得很大
依赖数据库 (MySQL) 自身的特性,完成数据的扩展是较困难的事,在 MySQL 中,当一个单达表到 5-10GB 时会出现明显的性能降级,此时需要通过数据的水平和垂直拆分、库的拆分完成扩展,使用 MySQL 通常需要借助驱动层或代理层完成这类需求。而 MongoDB 内建了多种数据分片的特性,可以很好地适应大数据量的需求。
基于位置的数据查询
MongoDB 支持二维空间索引,因此可以快速及精确地从指定位置获取数据。
表结构不明确
在一些传统 RDBMS 中,增加一个字段会锁住整个数据库 / 表,或者在执行一个重负载的请求时会明显造成其它请求的性能降级。通常发生在数据表大于 1G 的时候(当大于 1TB 时更甚)。 因 MongoDB 是文档型数据库,为非结构货的文档增加一个新字段是很快速的操作,并且不会影响到已有数据。另外一个好处当业务数据发生变化时,是将不再需要由 DBA 修改表结构。
二、数据库设计经验,为什么进行分表?分库?一般多少数据量开始分表?分库?分库分表的目的?
1、为什么要分表
当一张表的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。日常开发中我们经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表。这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,性能低下,如果涉及联合查询的情况,性能会更加糟糕。
分表和表分区的目的就是减少数据库的负担,提高数据库的效率,通常点来讲就是提高表的增删改查效率。数据库中的数据量不一定是可控的,在未进行分库分表的情况下,随着时间和业务的发展,库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作,增删改查的开销也会越来越大;另外,由于无法进行分布式式部署,而一台服务器的资源(CPU、磁盘、内存、IO 等)是有限的,最终数据库所能承载的数据量、数据处理能力都将遭遇瓶颈。
2、分表的方案
做 mysql 集群,有人会问 mysql 集群,根分表有什么关系吗?虽然它不是实际意义上的分表,但是它启到了分表的作用,做集群的意义是什么呢?为一个数据库减轻负担,说白了就是减少 sql 排队队列中的 sql 的数量,举个例子:有 10 个 sql 请求,如果放在一个数据库服务器的排队队列中,他要等很长时间,如果把这 10 个 sql 请求,分配到 5 个数据库服务器的排队队列中,一个数据库服务器的队列中只有 2 个,这样等待时间是不是大大的缩短了呢?
linux mysql proxy 的安装,配置,以及读写分离
mysql replication 互为主从的安装及配置,以及数据同步
优点:扩展性好,没有多个分表后的复杂操作(php 代码)
缺点:单个表的数据量还是没有变,一次操作所花的时间还是那么多,硬件开销大。
三、简述一下数据库主从复制,读写分离
* 什么是主从复制
主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;
* 主从复制的原理:
1.数据库有个bin-log二进制文件,记录了所有的sql语句。
2.只需要把主数据库的bin-log文件中的sql语句复制。
3.让其从数据的relay-log重做日志文件中再执行一次这些sql语句即可。
* 主从复制的作用
1.做数据的热备份,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失。
2.架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问频率,提高单机的I/O性能
3.主从复制是读写分离的基础,使数据库能制成更大 的并发。例如子报表中,由于部署报表的sql语句十分慢,导致锁表,影响前台的服务。如果前台服务使用master,报表使用slave,那么报表sql将不会造成前台所,保证了前台的访问速度。
* 主从复制的几种方式:
1.同步复制:所谓的同步复制,意思是master的变化,必须等待slave-1,slave-2,…,slave-n完成后才能返回。
2.异步复制:如同AJAX请求一样。master只需要完成自己的数据库操作即可。至于slaves是否收到二进制日志,是否完成操作,不用关心。MYSQL的默认设置。
3.半同步复制:master只保证slaves中的一个操作成功,就返回,其他slave不管。
这个功能,是由google为MYSQL引入的。
* 关于读写分离
在完成主从复制时,由于slave是需要同步master的。所以对于insert/delete/update这些更新数据库的操作,应该在master中完成。而select的查询操作,则落下到slave中。
程序员面试必备PHP基础面试题 – 第十三天一、在HTTP1.0中,状态吗500的含义的是什么?如果返回“找不到文件”的提示,则可用header(函数),其语句为?
500 Internal Server Error 服务器遇到了意料不到的情况,不能完成客户的请求
Header(“ HTTP/1.0 404 NOT FOUND”);
二、数组函数arsort()的作用是什么?语句err_reporting(2047)的作用是什么?
arsort:对数组进行逆向排序并保持索引关系;
error_reporting(2047)的作用是:report All errors and warnings
三、语句include和require都能把另外一个文件包含到当前文件中,它们的区别是___;为避免多此包含同一个文件,可以用语句_____来代替它们。
在如何处理失败时,include() 产生一个警告而 require() 则导致一个致命错误; require_once()/include_once()
四、get_magic_quotes_gpc的作用是_______
本函数取得 PHP 环境配置的变量 magic_quotes_gpc (GPC, Get/Post/Cookie) 值。返回 0 表示关闭本功能;返回 1 表示本功能打开。当 magic_quotes_gpc 打开时,所有的 ‘ (单引号), ” (双引号), (反斜线) and 空字符会自动转为含有反斜线的溢出字符。
五、在php中, heredoc是一种特殊的字符串, 他的结束标志必须是_____
结束标识符所在的行不能包含任何其它字符除”;”
六、写出一个正则表达式, 把$string中的所有数字全部删除
preg_replace(‘/d/U’,’’,$string);
七、找出/data1/source 目录中大于100k 的文件, 并复制到 ~/tmp/35/下
find /data1/source +size >100k | cp ~/temp/35/
八、perl –pi –e ‘s|ABCD|Linux|g’ `find ./ -type f`的含义是
find ./-type f:找寻当前目录下的类型为f的文件
九、10 2 * * * /data0/apache/schedule/ussd/topnews/import_data.pl > /dev/null 的含义:_______将import_data.pl清空或删除
十、rsync -avu 105903.zip 218.206.86.68::mmsres/resource/291/205的含义:_________备份数据用
-a 归档模式,递归传输文件;
-v 详细模式输出;
-u, –update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)
十一、写出x,y的值
十二、使用纯CSS实现未知寸的图片(但高度都小于200px) 在200px的正方形容器中水平和垂直居中,HTML代码如下
PHP面试都会问什么?简单的列出10点供你参考吧
1、php基础知识
2、常用函数使用
3、排序算法
4、引用变量的理解
5、session cookie 的理解
6、http请求 get post php://input 使用
7、mysql数据库链表查询,索引优化方案等
8、linux基本命名的使用 crontab,grep ,tail等
9、缓存 redis,memcached等的使用
10、市场上常用的流行PHP框架掌握,熟悉情况
PHP程序员面试都会涉及到哪些问题问题:请用最简单的语言告诉我 PHP 是什么?
回答:PHP 全称:Hypertext Preprocessor,是一种用来开发动态网站的服务器脚本语言。
问题:什么是 MVC?
回答:MVC 由 Model(模型), View(视图)和 Controller(控制器)组成,PHP MVC 可以更高效地管理好 3 个不同层的 PHP 代码。
Model:数据信息存取层。
View:view 层负责将应用的数据以特定的方式展现在界面上。
Controller:通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
问题:在页面中引用 CSS 有几种方式?
回答:在页面中使用 CSS 有 3 中方式:
引用外部 CSS 文件
内部定义 Style 样式
内联样式
问题:PHP 支持多继承吗?
回答:不可以。PHP 类只能继承一个父类,并用关键字“extended”标识。
问题:请问 PHP 中 echo 和 print 有什么区别?
这两个看起来很相似,因为它们都是将一些值打印在屏幕上。但是 echo 和 print 的本质区别在于:echo 用来输出字符串,显示多个值的时候可以用逗号隔开。只支持基本类型,print 不仅可以打印字符串值,而且可以打印函数的返回值。
问题:请问 GET 和 POST 方法有什么区别?
回 答:我们再网页上填写的表单信息都可以通过这两个方法将数据传递到服务器上,当我们使用 GET 方法是,所有的信息都会出现在 URL 地址中,并且使用 GET 方法最多只能传递 1024 个字符,所以如果在传输量小或者安全性不那么重要的情况下可以使用 GET 方法。说到 POST 方法,最多可以传输 2MB 字节的数据,而且可以根据需要调节。
问题:PHP 中获取图像尺寸大小的方法是什么?
回答:getimagesize () 获取图片的尺寸
Imagesx () 获取图片的宽度
Imagesy () 获取图片的高度
问题:PHP 中的 PEAR 是什么?
回答:PEAR 也就是为 PHP 扩展与应用库(PHP Extension and Application Repository),它是一个 PHP 扩展及应用的一个代码仓库。
问题:如何用 PHP 和 MySQL 上传视频?
回答:我们可以在数据库中存放视频的地址,而不需要将真正的视频数据存在数据库中。可以将视频数据存放在服务器的指定文件夹下,上传的默认大小是 2MB,但是我们也可以在 php.ini 文件中修改 max_file size 选项来改变。
问题:PHP 中的错误类型有哪些?
回答:PHP 中遇到的错误类型大致有 3 类。
提示:这都是一些非常正常的信息,而非重大的错误,有些甚至不会展示给用户。比如访问不存在的变量。
警告:这是有点严重的错误,将会把警告信息展示给用户,但不会影响代码的输出,比如包含一些不存在的文件。
错误:这是真正的严重错误,比如访问不存在的 PHP 类。
问题:如何在 PHP 中定义常量?
回答:PHP 中使用 Define () 来定义常量。
define (“Newconstant”, 30);
关于php常用扩展面试的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php常用扩展面试 php2021最新面试题的详细内容...