三道笔试题
1.要限制脚本只能访问一个指定的文件夹中的文件,一下那种方法最简单?
A.打开safe_mode
B.用open_basedir指定允许的文件夹
C.用自定义函数指定php可以访问的目录
D.设置文件系统权限,让php只能访问允许的目录2.当把一个有两个同名元素的表单提交给php脚本时会发生什么?
A.它们组成一个数组,存储在超级全局变量数组中
B.第二个元素的值加上第一个元素的值后,存储在超级全局变量数组中
C.第二个元素将覆盖第一个元素
D.第二个元素将自动被重命名3.你用什么方法检查php脚本的执行效率和数据库SQL的效率,并定位和分析脚本执行和数据库查询的瓶颈所在?

解决方案 »

  1.   

    1:Bopen_basedir设置能让你指定允许PHP读取的目录。这项设置是独立于safe_mode之外的,并且可以指定多个目录。选项D也是一种可行的限制访问的方式,但它不够简单——还很难维护。2:c 
    对于收到的查询字串和POST信息,PHP只是简单的把元素添加进对应的超级变量数组中。结果就是如果有两个元素同名,前一个会被后一个覆盖。3:  
    a.脚本执行时间,启用xdebug,使用WinCacheGrind分析。
    b.数据库查询,mysql使用EXPLAIN分析查询,启用slow query log记录慢查询。
      

  2.   

    就楼主的第一个问题说两句1.在 PHP 6.0.0 中去除了安全模式。2.PHP 的安全模式是为了试图解决共享服务器(shared-server)安全问题而设立的。在结构上,试图在 PHP 层上解决这个问题是不合理的,但修改 web 服务器层和操作系统层显得非常不现实。因此许多人,特别是 ISP,目前使用安全模式。因此安全模式和php都不是完美的解决“限制脚本只能访问一个指定的文件夹中的文件”,应该从apache服务器层面考虑解决问题。
      

  3.   

    apache的.htaccess文件不知能否解决该问题?期待高人回答。
      

  4.   

    1.B
    2.C
    3.更简单的方法可以用time()时间戳函数,把这个页面从上到下执行的时间相减($time1-$time2)就得到了这个页面执行的时间。