Maison > développement back-end > tutoriel php > Un cas d'implémentation de chemins relatifs à l'aide de l'algorithme PHP

Un cas d'implémentation de chemins relatifs à l'aide de l'algorithme PHP

黄舟
Libérer: 2023-03-16 17:06:01
original
2492 Les gens l'ont consulté

Cet article présente principalement des informations pertinentes sur des exemples d'implémentation de chemins relatifs dans l'algorithme PHP. J'espère que cet article pourra aider tout le monde à réaliser une telle fonction. Les amis dans le besoin peuvent s'y référer

Exemple de. Algorithme php pour implémenter le chemin relatif

Calculer le chemin relatif (le même répertoire peut être ignoré et représenté par ../ ou ./)

Code d'implémentation :


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,&#39;..&#39;); 
      } 
      if($i==$len){ 
        $rearray=array(&#39;./&#39;); 
      } 
    } 
    $reroot=array_merge($rearray,array_slice($arr2, $i)); 
    return implode(&#39;/&#39;, $reroot); 
  } 
} 
$path1="a/b/c/d/index.php"; 
$path2="/a/b/12/34/index1.php"; 
$a=Relatively::relaroot($path1, $path2); 
echo $a;
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal