Retrouver le nombre de ../ qu'il faut mettre pour acceder à un dossier préci.

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 474 fois - Téléchargée 29 fois

Contenu du snippet

Ce code sert à retrouver le nombre de ../ qu'il faut mettre pour retrouver se retrouver dans un dossiers préci.

PAR EXEMPLE UN EXEMPLE :
l'adresse à laquelle vous êtes :
www.votresite.com/rubrique1/pages/sousdossiers/page.php
Vous ne savez pas combien de sous dossiers il y a mais vous aimeriez faire un lien vers votre feuille CSS qui se trouve dans le dossier :
www.votresite.com/rubrique1/theme/feuille.css

Donc vous copiez ma fonction, et votre lein sera :
retour_dossier(rubrique1).'theme/feuille.css'

Et cela marchera toujours si vous rajoutez des sous dossier partout, ce qui serait pas le cas si vous mettiez pour votre lien :
www.votresite.com/rubrique1/theme/feuille.css
Car si ce lien devient www.votresite.com/rubriques/rubrique1/theme/feuille.css
Ca ne marcherai plus.
Avec mon code ça marche toujours ^^

Source / Exemple :


<?php
function retour_dossier($dossier)
   {
$chemin=$_SERVER['PHP_SELF'];

if($dossier!='?racine?')
{
$regex='!^.*/'.$dossier.'((/[a-z0-9_]+)*)/[a-z0-9_]+\.[a-z0-9_]+$!';
$dossiers_en_trop=preg_replace($regex,'$1',$chemin);
}
else
{
$dossiers_en_trop=preg_replace('!^(.*)/[a-z0-9_]+\.[a-z0-9_]+$!','$1',$chemin);
}

$nombre_dossiers_en_trop=substr_count($dossiers_en_trop,'/');

/*On fait une boucle pour mettre tous les ../ qu'il faut */
$compteur=$nombre_dossiers_en_trop;
$retours='';
while ($compteur>=1)
  {
  $retours .='../';
  $compteur=$compteur-1;
  }
return $retours;
   }
?>

   }
   
   retour_dossier($dossier);
?>

Conclusion :


Si vous voulez retourner jusqu'à la racine du texte, mettez $dossier='?racine?';

A voir également

Ajouter un commentaire

Commentaires

Messages postés
388
Date d'inscription
lundi 7 juillet 2003
Statut
Webmaster
Dernière intervention
10 février 2009

Ce que je voulais dire :
si tes feuilles de style sont identiques, rien ne t'empeche de dire que
dans ta page hebergeur 2:
<link rel="stylesheet" href="www.hebergeur1.com/chemin/delafeuille/de/style.css" type="text/css" />
Messages postés
56
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
9 août 2005

Si parcequ'il ne sont pas dans le même dossier chez les deux hebergeurs :
Par exemple
1)hebergeur1/public_html/site3/
2)hebergeur2/site2/
Messages postés
388
Date d'inscription
lundi 7 juillet 2003
Statut
Webmaster
Dernière intervention
10 février 2009

oki, mais tu peux aussi avoir

$_SERVER["SERVER_NAME"] qui te donne le nom du serveur .

tu le code en dur avec $fichiercss = $_SERVER["SERVER_NAME"].'/chemin/de/la.css'

devrais marché tout aussi bien

teste, c'est a vu de nez que je te donne ca.

De plus, le fait d'être sur un autre serveur, ne t'empeches pas de pouvoir acceder au css du serveur 'primaire'
Messages postés
56
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
9 août 2005

Merci, au fait si j'avais fait ça c'est parce que j'avais le site sur plusieurs serveurs, et donc l'adresse réelle n'était pas la même et je voulais avoir le même code ^^ Mais j'ai découvert que c'est plus simple avec des PATH. ^^
Messages postés
388
Date d'inscription
lundi 7 juillet 2003
Statut
Webmaster
Dernière intervention
10 février 2009

Salut,

Sympa, mais c'est largement plus simple de donner l'adresse réelle de la feuille de style, plutot de la mettre en relatif.

Sinon, c'est une bonne utilisation des expressions régulière.

Continue comme ca.

PS: je regarderai si ton script fonctionne avec le URL rewriting, il me semble que c'est OK

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.