PHP面试题 – 培训学校真实面试内部资料

  1.PHP解析URL是哪个函数?

  parse_url() 是讲URL解析成有固定键值的数组的函数。

$ua=parse_url('http://username:password@hostname/path?arg=value#anchor');
print_r($ua);

   结果:

Array(
    [scheme] => http
    [host] => hostname
    [user] => username
    [pass] => password
    [path] => /path
    [query] => arg=value
    [fragment] => anchor
)

   2.什么是smarty? Smarty的优点是什么?

  Smarty是一个使用PHP写出来的PHP模板引擎,目的是要使用PHP程序同美工分离,使的程序员改变程序的逻辑内容时不会影响到美工的页面设计,美工重新修改页面时不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。(也易于程序的多样式开发)

  Smarty优点:

  1. 速度快:相对其他模板引擎。

  2. 编译型:采用smarty编写的程序在运行时要编译成一个非模板技术的PHP文件。

  3 .缓存技术:它可以将用户最终看到的HTML文件缓存成一个静态的HTML页。

  4. 插件技术:smarty可以自定义插件。

  不适合使用smarty的地方:

  1. 需要实时更新的内容。例如像股票显示,它需要经常对数据进行更新 。

  2. 小项目。小项目因为项目简单而美工与程序员兼于一人的项目。

  3.如何配置、使用和清除Smarty缓存

  1、Smarty缓存的配置

  $smarty->cache_dir = “/caches/”; //缓存目录

  $smarty->caching = true; //开启缓存,为flase的时侯缓存无效

  $smarty->cache_lifetime = 60; //缓存时间

  2、Smarty缓存的使用和清除

  $smarty->display(‘cache.tpl’, cache_id); //创建带ID的缓存

  $smarty->clear_all_cache(); //清除所有缓存

  $smarty->clear_cache(‘index.htm’); //清除index.tpl的缓存

  $smarty->clear_cache(‘index.htm’,cache_id); //清除指定id的缓存

  4.介绍一下Cookie和Session及他们之间的区别

  在非常多时候,我们需要跟踪浏览者在整个网站的活动,对他们身份进行自动或半自动的识别(也就是平时常说的网站登陆之类的功能),这时候,我们常采用Cookie与 Session来跟踪和判断。

  区别:

  Session信息是存放在server端,但session id是存放在client cookie的,当然php的session存放方法是多样化的,这样就算禁用cookie一样可以跟踪Cookie是完全保持在客户端的如:IE firefox 当客户端禁止cookie时将不能再使用

  使用Cookie的限制:

  1、必须在HTML文件的内容输出之前设置;

  2、不同的浏览器对Cookie的处理不一致,且有时会出现错误的结果。

  3、限制是在客户端的。一个浏览器能创建的Cookie数量最多为30个,并且每个不能超过4KB,每个WEB站点能设置的Cookie总数不能超过20个。

  5.PHP开发的一般流程

  1、尽量完整的需求方案,具体到每个功能点上

  2、建模结构UML,通过UML工具建立专业的模或自己画一个简单的关系图。

  3、建立数据库

    1)、建立的表名、字段名要与他的功能有关系英文不好的拼音同样可以

    2)、根据结构建立数据库表,原则是不定项内容一定要分表。

    3)、字段类型要考虑内容是否够用就好,选择适合的类型 INT Varchar Date

  4、设计HTML文件和脚本的实现

  根据模和数据库来设计页面是个很科学的方法,当然有的时候有人喜欢根据模型设计页面,数据库基于页面设计,都是可以的。设计页面时要考虑到每个细节,包括提示消息页面,错误页面。

  5、PHP代码的书写

    1)、先建立底层结构和文件夹(如果是大型的网站同样设计一个文件UML

    2)、基础功能分类关联,以便今后代码引用。

    3)、代码的书写,注意简洁性和函数的使用,内部函数能实现的尽量用内部函数

    4)、在部分关键位置加以代码注释。

  6、程序的测试和修正

    1)、对于发现的BUG不能就解决BUG而解决,要处于完整程序考虑。避免收之东隅失之桑榆。

    2)、对于解决过的BUG已经要详细记录,以便日后更新。

  6.PHP如何对用户密码进行加密

  md5() sha1()

  7.mysql_pconnect()和mysql_connect()有什么区别

  两者的区别主要有两个:
  1. 在进行数据库连接时,函数会先找同一个host, 用户和密码的persistent(持续的)的链接,如果能找到,则使用这个链接而不返回一个新的链接。
  2. mysql_pconnect()创建的数据库连接在脚本执行完毕后仍然保留,可以被后来的代码继续使用,mysql_close()函数也不会关闭mysql_pconnect()创建的链接。

  8.请说明 PHP 中传值与传引用的区别。什么时候传值什么时候传引用?

  答: 传值只是把某一个变量的值传给了另一个变量,而引用则说明两者指向了同一个地方。

  9. 在PHP中error_reporting这个函数有什么作用?  

  答: The error_reporting() function sets the error_reporting directive at runtime. PHP has many levels of errors, using this function sets that level for the duration (runtime) of your script.

  

原文地址:https://www.cnblogs.com/zhouguowei/p/5034985.html