Chemin abosolu et relatif

Fermé
malek - 19 déc. 2011 à 11:20
 malek - 20 déc. 2011 à 08:41
Bonjour,
j'ai vu sur differents forums du web sans avoir une reponse satisfaisante;
je cherche a savoir comment pointer un fichier en absolu cela veux dire en donnant son chemin depuis la racine, par exemple "www" comme dans mon cas avec le EasyPHP

ceci est mon cas de code:
<?php
require("[???]DB/DBLoader.php");
?>

le repertoire "DB" est directement sour "www" et je veux avoir une methode pour l'adresser de tout les autres repertoires de mon site.

ca sera gentil de me donner la même solution sous html aussi

merci bien en avance




4 réponses

Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
19 déc. 2011 à 16:58
Je vais re-répondre, pour dire la même chose, mais en plus complet.

Un lien absolu reprend l'adresse entière du fichier, et peu importe d'où il est utilisé, il menera au même endroit.
Un lien relatif ne reprend qu'une partie de l'adresse du fichier, et en fonction de là où il est utilisé, il ne menera pas au même endroit.

Dans ton cas, si tu prend un adressage absolu maintenant, tu devras inclure "localhost" dedans (où l'ip de ta boucle locale 127.0.0.1, c'est pareil), et tu pourras utiliser le lien sur toutes tes pages. Mais lors de l'envoi vers ton serveur, le lien ne fonctionnera plus bien entendu, puisque le fichier cible ne sera plus au même endroit.
Si tu prends un adressage relatif, tu devras faire un lien propre à chaque page de ton site, mais la portabilité vers ton serveur fonctionnera.

La solution que je te propose, valable uniquement si tu as une page tout le temps appelée (pour tes fonctions par exemples):
$chemin = "localhost";
require($chemin.'/DBLoader.php');


Et lors de l'envoi sur ton serveur, tu changes la valeur de $chemin pour la changer sur tout ton site.
Perso, plutôt que de s'embêter, je suis partisan du lien relatif différent sur chaque page.
0
Bonjour

Le nom de domaine et l'adresse IP n'ont rien à voir là-dedans.
On parle d'adressage relatif ou absolu dans deux cas de figure qui n'ont rien à voir :
. la cible est accédée par HTTP (typiquement <a href="url">
. la cible est un fichier dans le serveur (typiquement include ou require)
Dans le cas de l'url, bien sûr, il faut mettre un nom de domaine pour avoir une référence absolue.
Mais toi tu veux faire un require : il le faut le nom (absolu) du dossier où se trouvent tes fichiers. Il faut utiliser la variable $_SERVER['DOCUMENT_ROOT'] et peut-être ajouter www/ ou html/ ou rien du tout ou autre chose, ça dépend de comment ton hébergeur organise son système de fichiers.

Les spécialistes me diront qu'ont peut aussi avoir des include avec des url, mais je doute que ce soit le cas ici.
0
bonjour et Merci à vous tous,
je pense que $_SERVER['DOCUMENT_ROOT'] proposé par Le pere doit être la solution la plus complète, bien je ne comprend toujours pas pourquoi le "../" marche parfois et parfois non
et hier en tatouant j'ai vu que "/" marche aussi sur WAMP (à savoir pour combien de temps)
espérant de ne pas déranger beaucoup je cherche la solution la plus simple alors si un symbole comme "../" ou "/" peu faire l'affaire au lieu des variables globales comme $_SERVER['DOCUMENT_ROOT'] j'aimerai bien l'utilisé, mais tout en gardant mon code compatible avec tous les serveurs.
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
20 déc. 2011 à 07:46
".." et "." sont des chemins relatifs qui signifient respectivement "dossier parent", et "dossier en cours". En fonction d'où ils sont utilisés, ils n'indiquent donc pas les mêmes dossiers.
0
ok ça c tres clair :-)
et pour dossier racine du site on fait quoi?
0
sans passer par le domaine bien sure
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
20 déc. 2011 à 08:26
Et bien il faut une variable :)
0
hhh ok j'ai deja essayé la variable, ca marche bien pour le moment espérant le pour longtemps :)
merci bien pour votre assistance et bonne journée ../.
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
19 déc. 2011 à 11:21
Bonjour,

Un adressage absolu prend en compte ton nom de domaine ;)

www.monsite.com/DB/DBLoader.php
-4
Merci Apatik mais c'est pas ca que je cherche puisque là je code sous easyPHP et ww.monsite.com est simplement http://127.0.0.1; et en plus j'ai pas encore de domaine je suis encore en etape de construction de la page
il doit y avoir pour adresser un ficher en absolu ce la veux dire son adresse depuis le racine;
je donne ici un cas pareil sous DOS :
en relatif : cd db
en absolu : cd c:\db
deux metode d'adresser un repertoire relatif et absolue
et je cherche le mode absolu puisque c plus simple
merci encore
0
Raydenprod Messages postés 77 Date d'inscription lundi 12 décembre 2011 Statut Membre Dernière intervention 27 mai 2013 4
19 déc. 2011 à 11:33
tu tapes ../ puis le chemin de ton fichier à partir du www
0
Merci Ray et en Html on fait koi a la place de ../
0
ben c un peu bizarre; mais ce "../" ne fonctionne pas toujours; en tout cas au debut ça ne fonctionne pas mais après pour une raison que je connais pas ça passe; et quand je recommence sur un autre sur un autre pc ça recommence

voici ce que j'écrit exactement dans le code:

<?php require("../DBLoader.php"); ?>

j'ai déplacé mon fichier "DBLoader.php" directement sous la racine comme suit:
www\DBLoader.php
0