PHP面试常见问题

来源:互联网 发布:开个淘宝店需要多少钱 编辑:程序博客网 时间:2024/06/03 18:40

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/dfunction 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 

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


 

原创粉丝点击