PHP面试常见问题
2012-07-09 11:34
330 查看
PHP脚本超时时间调整
php.ini文件的配置工作 查找safe_mode=Off,更改为safe_mode=On
1)查找max_execution_time = 30,更改为max_execution_time = 600 PHP脚本超时时间调整
(2)查找max_input_time = 60,更改为max_input_time = 600 PHP脚本上传文件超时时间调整
(3)查找memory_limit = 8M ,更改为memory_limit = 20M
(4)查找display_errors = On,更改为display_errors = Off
(5)查找register_globals = Off,更改为register_globals = On
(6)查找post_max_size = 8M,更改为post_max_size = 20M
(7)查找upload_max_filesize = 2M,更改为upload_max_filesize = 20M
(8)查找session.auto_start = 0,更改为session.auto_start = 1
保存后退出,从而完成了php.ini文件的配置工作。
一 写一个函数,算出两个文件的相对路径
如$a = '/a/b/c/d/e.php';
$b = '/a/b/1/2/c.php';
计算出$b 相对于$a 的相对路径应该是../../c/d
<?php #写一个函数,算出两个文件的相对路径 #如$a = '/a/b/c/d/e.php'; # $b = '/a/b/1/2/c.php'; #计算出$b 相对于$a 的相对路径应该是../../c/d function getRelativePath($a,$b){ $B = array(dirname($b));//dirname()这个函数是截取目录的文件夹,文件名会舍去。 $A = array(dirname($a)); echo "$B[0]<br>"; #/a/b/c/d echo "$A[0]<br>"; #/a/b/1/2 $arrA = explode('/',$A[0]); $arrB = explode('/',$B[0]);// 以 / 为分隔符 形成一个数组 $len = strlen($A); for($n=1; $n < $len; $n++){ if($arrA[$n] != $arrB[$n]){ break; } } if($len - $n > 0){ $A = array_fill(0, $len - $n, '..');//array_fill(0,$len-$n,'..')这个函数是在数组键值0的位置加 2 个.. 这样的数组值 echo "$A[0],$A[1],<br>"; #..,.., } $A = array_merge($A,array_slice($arrB,$n));//array_slice() 是在一个数组中截取从第几个键值开始后的数组值 echo "$A[0],$A[1],$A[2],$A[3]<br>"; #..,..,c,d return implode('/',$A); echo "$A[0],$A[1],$A[2],$A[3]<br>"; #../../c/d } echo getRelativePath('/a/b/1/2/c.php', '/a/b/c/d/e.php'); ?>
二 写一个函数,尽可能高效的,从一个标准url 里取出文件的扩展名
例如: http:\\www.wps.cn\hello\tks\hi.php?id=1 需要取出 php 或.php
<?php function getExt($url){ $path = parse_url($url); #for($i = 0; $i < strlen($path); ++ $i) #{ # echo "$path[$i]."; #} echo '<br>'; print_r(parse_url($url)); #Array ( [scheme] => http [host] => www.sina.com.cn [path] => /abc/de/fg.php [query] => id=1 ) echo '<br>'; $str=explode('.',$path['path']); return $str[1]; } echo getExt('http://www.sina.com.cn/abc/de/fg.php?id=1'); ?>
#echo $path['scheme'].','.$path['host'].','.$path['path'].','.$path['query'];
#http,www.sina.com.cn,/abc/de/fg.php,id=1
三 pathinfo函数,(PHP 4 >= 4.0.3, PHP 5)
pathinfo -- 返回文件路径的信息
说明
array pathinfo ( string path [, int options] )
pathinfo() 返回一个关联数组包含有 path 的信息。包括以下的数组单元:dirname,basename 和 extension。
可以通过参数 options 指定要返回哪些单元。它们包括:PATHINFO_DIRNAME,PATHINFO_BASENAME 和 PATHINFO_EXTENSION。默认是返回全部的单元。
例子 1. pathinfo() 例子
<?php $path_parts = pathinfo("/www/htdocs/index.html"); echo $path_parts["dirname"] . "\n"; echo $path_parts["basename"] . "\n"; echo $path_parts["extension"] . "\n"; ?>
上例将输出:
/www/htdocs
index.html
html
四 basename函数,(PHP 3, PHP 4, PHP 5)
basename -- 返回路径中的文件名部分
说明
string basename ( string path [, string suffix] )
给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。如果文件名是以 suffix 结束的,那这一部分也会被去掉。
在 Windows 中,斜线(/)和反斜线(\)都可以用作目录分隔符。在其它环境下是斜线(/)。
例子 1. basename() 例子
<?php $path = "/home/httpd/html/index.php"; $file = basename($path); // $file is set to "index.php" $file = basename($path,".php"); // $file is set to "index" //同样也可以这样 $path_other = $_SERVER['DOCUMENT_ROOT']; $test_file = $path_other.basename($_FILES['file_ep']['name']);//file_ep是上传文件的name 值 ?>
在linux下basename的作用是:显示文件或者目录的基本名称
用法:basename 名称[后缀]
或 basename 选项
相关文章推荐
- php面试必知必会常见问题
- 自己总结的一些关于前端和php的面试中的常见的问题
- PHP常见面试问题
- PHP常见的面试问题
- PHP工程师面试常见问题
- 面试中常见链表问题5:删除链表中重复元素2
- PHP浮点数的一个常见问题的解答
- centos搭建PHP的常见问题汇总
- PHP浮点数的一个常见问题的解答
- 链表常见面试问题
- PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
- Java工程师面试常见问题
- php高级研发或架构师必了解---很多问题面试中常问到!
- Linux编程之:五个常见PHP数据库问题
- 前端面试中常见的算法问题
- C++面试常见问题
- 面试java高级工程师、项目经理等的常见问题
- 面试常见问题——垂直居中的几种方法
- 面试常见问题回答方法
- 面试常见问题的经典回答