Maison >développement back-end >tutoriel php >PHP几个比较常见的口试程序题整理

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

WBOY
WBOYoriginal
2016-06-13 12:24:02891parcourir

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;	}


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

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn