比较基础的php面试题及答案-编程题

2023-07-06   


编程题:
   1. 写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名
   例如: http://www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php
   答案1:
   function getExt($url)
   $arr = parse_url($url);
  
   $file = basename($arr[\path\]);
   $ext = explode(“.”,$file);
   return $ext[1];
  
   答案2:
   function getExt($url)
   $url = basename($url);
   $pos1 = strpos($url,”.”);
   $pos2 = strpos($url,”?”);
   if(strstr($url,”?”))
   return substr($url,$pos1 + 1,$pos2 – $pos1 – 1);
   else
   return substr($url,$pos1);
  
  
  
   2. 在 HTML 语言中,页面头部的 meta 标记可以用来输出文件的编码格式,以下是一个标准的 meta 语句
   请使用 PHP 语言写一个函数,把一个标准 HTML 页面中的类似 meta 标记中的 charset 部分值改为 big5
   请注意:
   1. 需要处理完整的 html 页面,即不光此 meta 语句
   2. 忽略大小写
   3. ‘ 和 ” 在此处是可以互换的
   4. ‘Content-Type’ 两侧的引号是可以忽略的,但 ‘text/html; charset=gbk’ 两侧的不行
   5. 注意处理多余空格
  
   3. 写一个函数,算出两个文件的相对路径
   如 $a = ‘/a/b/c/d/e.php’;
   $b = ‘/a/b/12/34/c.php’;
   计算出 $b 相对于 $a 的相对路径应该是 ../../c/d将()添上
   答:function getRelativePath($a, $b)
   $returnPath = array(dirname($b));
   $arrA = explode(‘/’, $a);
   $arrB = explode(‘/’, $returnPath[0]);
   for ($n = 1, $len = count($arrB); $n < $len; $n++)
   if ($arrA[$n] != $arrB[$n])
   break;
  
  
   if ($len – $n > 0)
   $returnPath = array_merge($returnPath, array_fill(1, $len – $n, ‘..’));
  
  
   $returnPath = array_merge($returnPath, array_slice($arrA, $n));
   return implode(‘/’, $returnPath);
  
   echo getRelativePath($a, $b);


相关内容:

  1. 比较基础的php面试题及答案-填空题
  2. PHP面试题及答案二
  3. PHP面试题及答案一
  4. 小升初英语面试题及答案
  5. 一份比较全的PHP面试题
  6. 面试笔试题目规律题及答案