PHP面试常见问题

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


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值