php 算法之實(shí)現(xiàn)相對路徑的實(shí)例
更新時(shí)間:2017年10月17日 14:44:13 作者:xingjigongsi
這篇文章主要介紹了php 算法之實(shí)現(xiàn)相對路徑的實(shí)例的相關(guān)資料,希望通過本文能幫助到大家,讓大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下
php 算法之實(shí)現(xiàn)相對路徑的實(shí)例
算出相對路徑(相同的目錄可以忽略用../ 或者 ./ 表示)
實(shí)現(xiàn)代碼:
class Relatively{ private function __construct(){ } /** * 算出相對路徑(相同的目錄可以忽略用../ 或者 ./ 表示) * @param Strint $path1 * @param Strint $path2 * @return string */ public static function relaroot($path1,$path2){ $rearray=array(); $arr1=explode('/', dirname($path1)); $arr2=explode('/', dirname($path2)); for($i=0,$len=count($arr2)-1;$i<$len;$i++){ if($arr1[$i]!=$arr2[$i]){ break; } if($i==1){ $rearray=array(); } if($i!=1 && $i<$len){ $rearray=array_fill(0,$len-$i,'..'); } if($i==$len){ $rearray=array('./'); } } $reroot=array_merge($rearray,array_slice($arr2, $i)); return implode('/', $reroot); } } $path1="a/b/c/d/index.php"; $path2="/a/b/12/34/index1.php"; $a=Relatively::relaroot($path1, $path2); echo $a;
如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
PHP設(shè)計(jì)模式之?dāng)?shù)據(jù)訪問對象模式(DAO)原理與用法實(shí)例分析
這篇文章主要介紹了PHP設(shè)計(jì)模式之?dāng)?shù)據(jù)訪問對象模式(DAO)原理與用法,結(jié)合實(shí)例形式分析了PHP數(shù)據(jù)訪問對象模式的概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2019-12-12PHP的fsockopen、pfsockopen函數(shù)被主機(jī)商禁用的解決辦法
這篇文章主要介紹了PHP的fsockopen、pfsockopen函數(shù)被主機(jī)商禁用的解決辦法,一是使用stream_socket_client函數(shù)代替,二是寫一個(gè)類似fsockopen功能的自定義函數(shù),需要的朋友可以參考下2014-07-07PHP處理SQL腳本文件導(dǎo)入到MySQL的代碼實(shí)例
通常在制作安裝程式,數(shù)據(jù)備份程序的時(shí)候會(huì)要用到這樣的代碼,我看網(wǎng)上有是有不太多,而且有些也不是很好用,有時(shí)候這種代碼直接用現(xiàn)成的可以節(jié)省很多時(shí)間,那么我就從stackoverflow轉(zhuǎn)了一個(gè)過來,需要的朋友可以參考下2014-03-03