设为首页 收藏本站
查看: 859|回复: 0

[经验分享] php面试题之一——PHP核心技术(高级部分)

[复制链接]

尚未签到

发表于 2018-12-13 07:13:50 | 显示全部楼层 |阅读模式
一、PHP核心技术
1.写出一个能创建多级目录的PHP函数(新浪网技术部)

2.写出smarty模板的特点(新浪网技术部)
  速度快,编译型,缓存技术,插件机制,强大的表现逻辑
3.打开php.ini中的safe_mode,会影响哪些函数?至少说出6个。(新浪)
  safe_mode,php安全模式,它提供一个基本安全的共享环境,在一个有多个用户账户存在的php开发的web服务器上。当安全模式打开的时候,一些函数将被完全的禁止,而另一些函数的功能将会受到限制,如:chdir,move_uploaded_file,chgrp,parse_ini_file,chown,rmdir,copy,rename,fopen,require,mkdir,unlink等。
  注意,在php5.3以上版本,safe_mode被弃用,在php5.4以上版本,则将此特性完全去除了。
4.抓取远程图片到本地,你会用什么函数?(51.com笔试题)
  file_get_contents或者curl
5.PHP的垃圾收集机制是怎样的(腾讯)
  PHP可以自动进行内存管理,清除不再需要的对象。
  PHP使用了引用计数(reference counting)这种单纯的垃圾回收(garbage collection)机制。每个对象都内含一个引用计数器,每个reference连接到对象,计数器加1。当reference离开生存空间或被设为NULL,计数器减1。当某个对象的引用计数器为零时,PHP知道你将不再需要使用这个对象,释放其所占的内存空间。
6.请写一段PHP代码,确保多个进程同时写入同一个文件成功(腾讯)
  核心思路:加锁

7.写一个函数,尽可能高效的,从一个标准url里取出文件的扩展名,例如:http://www.sina.com.cn/abc/de/fg.php?id=1需要取出php或.php(新浪)

相关题目:使用五种以上方式获取一个文件的扩展名,要求:dir/upload.image.jpg,找出.jpg或者jpg,必须使用PHP自带的处理函数进行处理,方法不能明显重复,可以封装成函数,比如get_ext1($file_name),get_ext2($file_name)
8.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。(新浪)

[!!!]9.简述论坛中无限分类的实现原理。(新浪)
  创建类别表如下:
CREATE TABLE category(  
cat_id smallint unsigned not null auto_increment primary key comment'类别ID',
  
cat_name VARCHAR(30)NOT NULL DEFAULT''COMMENT'类别名称',
  
parent_id SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT'类别父ID')engine=MyISAM
  编写一个函数,递归遍历,实现无限分类

10.写一个函数,算出两个文件的相对路径,如$a='/a/b/c/d/e.php';$b='/a/b/12/34/c.php';计算出$b相对于$a的相对路径应该是../../c/d(新浪)

11.mysql_fetch_row()和mysql_fetch_array()有什么分别?
  mysql_fetch_row()把数据库的一列储存在一个以零为基数的数组中,第一栏在数组的索引0,第二栏在索引1,依此类推。
  mysql_fetch_assoc()把数据库的一列储存在一个关联数组中,数组的索引就是字段名称,例如我的数据库查询送回“first_name”、“last_name”、“email”三个字段,数组的索引便是“first_name”、“last_name”和“email”。
  mysql_fetch_array()可以同时送回mysql_fetch_row()和mysql_fetch_assoc()的值。
12.有一个网页地址,比如PHP开发资源网主页:http://www.phpres.com/index.html,如何得到它的内容?
  方法1(对于PHP5及更高版本):
$readcontents=fopen("http://www.phpres.com/index.html","rb");$contents=stream_get_contents($readcontents);  
fclose($readcontents);echo $contents;
  方法2:
echo file_get_contents("http://www.phpres.com/index.html");13.谈谈对mvc的认识
  由模型(model),视图(view),控制器(controller)完成的应用程序。
  model层负责提供数据,和数据库有关的操作都交给模型层来处理,view层则提供交互的界面,并输出数据,而controller层则负责接收请求,并分发给相应的model来处理,然后调用view层来显示。
[!]14.What does the GD library do?(Yahoo)
  GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。自从PHP 4.3.0版本后GD便内建在PHP系统中。
15.What function can you use to open a file for reading and writing?(Yahoo)
  A.fget();
  B.file_open();
  C.fopen();
  D.open_file();
  答案:C
  fget()这不是一个PHP函数,会引致执行错误。
  file_open()这不是一个PHP函数,会引致执行错误。
  fopen()这是正确答案,fopen()可以用来开启档案以便读写。
  open_file()这不是一个PHP函数,会引致执行错误。
[!!]16.Smarty的原理
  smarty是一个模板引擎,使用smarty主要是为了实现逻辑和外在内容的分离,如果不使用模板的话,通常的做法就是php代码和html代码混编。使用了模板之后,则可以将业务逻辑都放到php文件中,而负责显示内容的模板则放到html文件中。
  Smarty在执行display方法的时候,读取模板文件,并进行数据替换,生成编译文件,之后每次访问都会直接访问编译文件,读取编译文件省去了读取模板文件,和字符串替换的时间,所以可以更快,编译文件里时间戳记录模板文件修改时间,如果模板被修改过就可以检测到,然后重新编译(编译是把静态内容保存起来,动态内容根据传入的参数不同而不同)。
  如果启用了缓存,则会根据编译文件生成缓存文件,在访问的时候如果有缓存文件并且缓存文件没有过期,则直接访问缓存文件。
相关题目1:能够使HTML和PHP分离开使用的模板
  smarty,phplib等
相关题目2:您是否用过模板引擎?如果有您用的模板引擎的名字是?
  Smarty
17.PHP如何实现页面跳转
  方法一:php函数跳转,缺点,header头之前不能有输出,跳转后的程序继续执行,可用exit中断执行后面的程序。
  header("Location:网址");//直接跳转
  header("refresh:3;url=http://axgle.za.net");//三秒后跳转
  方法二:利用meta
  echo"";
18.PHP可以和sql server/oracle等数据库连接吗?
  可以
19.使用哪些工具进行版本控制?
  SVN或者CVS
相关题目:您是否用过版本控制软件?如果有您用的版本控制软件的名字是?
  TortoiseSVN-1.2.6
20.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把script标记及其内容都去掉):
  过滤javascript脚本参考:

21.Given a line of text $string,how would you write a regular expression to strip all the HTML tags from it?(Yahoo)
  方案一,使用PHP内建函数strip_tags()除去HTML标签
  方案二,自定义函数,如下:

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-650674-1-1.html 上篇帖子: php面试题之五——PHP综合应用(高级部分) 下篇帖子: PHP面向对象编程基本原则
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表