水莹儿 发表于 2018-12-13 07:06:25

PHP核心技术


[*]  写出能够创建多级目录的PHP函数(新浪网技术部)
  
  

  

  2.写出smarty模板的特点(新浪网技术部)
  速度快、编译快、缓存技术、插件机制、强大的表现逻辑
  

  3.抓取远程图片到本地,你会用什么函数?

  file_get_contents()或者curl()
  

  4.php垃圾收集机制是怎么样的?
  (1)PHP可以进行内存管理,清除不再需要的对象。
  (2)PHP使用了引用计数(reference counting)这种单纯的垃圾回收(garbage collection)机制。
  (3)每个对象都内含一个引用计数器,每个reference连接到对象,计数器加1。
  (4)当reference离开生成空间或者设置为null,计数器减1。
  (5)当某个对象的引用计数器为0时,PHP知道你不在需要使用这个对象,释放其所在空间。
  

  5.请写一段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(filename),getext2(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 charset=utf8;编写一个函数,递归遍历,实现无限分类
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]
查看完整版本: PHP核心技术