您的位置:首页 > 职场人生

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 选项

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息