>백엔드 개발 >PHP 튜토리얼 >PHP几个比较常见的口试程序题整理

PHP几个比较常见的口试程序题整理

WBOY
WBOY원래의
2016-06-13 12:24:02890검색

PHP几个比较常见的面试程序题整理

反转字符串可以使用【strrev】但是最终要的就是多字节字符串

	//反转字符串	function mb_strrev($str){		$len = mb_strlen($str,&#39;utf-8&#39;);		$r = array();		for($i=0;$i<$len;$i++){			$r[] = mb_substr($str,$i,1,&#39;utf-8&#39;);		}		return implode(array_reverse($r));	}

得到URL中扩展名,注意URL中不一定有扩展名的

	//得到url中扩展名	function getUrlExt($str){		$url_info = parse_url($str);		if(array_key_exists(&#39;path&#39;,$url_info)){			$path = $url_info[&#39;path&#39;];			$file_info = pathinfo($path);			if(array_key_exists(&#39;extension&#39;,$file_info)){				return $file_info[&#39;extension&#39;];			}		}		return false;		}


计算两个文件的相对路径

	function getrpath($path,$conpath){		$pathArr = explode(&#39;/&#39;,$path);		$conpathArr = explode(&#39;/&#39;,$conpath);		//$dis_match_len = 0;		for($i=0;$i<count($pathArr);$i++){			if($pathArr[$i] != $conpathArr[$i]){				$dis_match_len = count($pathArr) - $i - 1;				$arr_left = array_slice($pathArr,$i);				break;			}		}		return str_repeat(&#39;../&#39;,$dis_match_len).implode(&#39;/&#39;,$arr_left);	}

计算两个文件相对路径的方法2,使用PHP内置函数【array_diff_assoc】

	function getrpath2($path,$conpath){		$pathA = explode(&#39;/&#39;,$path);		$pathB = explode(&#39;/&#39;,$conpath);		$res = array_diff_assoc($pathA,$pathB);		$path = &#39;&#39;;		for($i=0;$i<count($res)-1;$i++){			$path .= &#39;../&#39;;		}		$path .= implode(&#39;/&#39;,$res);		return $path;	}


版权声明:本文为博主原创文章,未经博主允许不得转载。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.