1

Bonjour à toutes et à tous,

Je suis en pleine réalisation d'un site web et j'ai eu besoin de récupérer l'adresse de la racine du site sous 2 forme: /dossier/ou/est/heberge/le/site et http://monsite/

Donc j'ai tapé ce code là:

$filedir=realpath(dirname('index.php'));
pour avoir la première forme et ça marche.

Par contre pour la deuxieme je ne trouve pas mon bonheur. Auriez vous une idée?
avatar
"If you see strict DRM and copy protection that threatens the preservation of history, fight it: copy the work, keep it safe, and eventually share it so it never disappears. [...] no one living 500 years from now will judge your infringing deeds harshly when they can load up an ancient program and see it for themselves."

Benj Edwards - Why History Needs Software Piracy

- - -
Achat ou échange: topic de mes recherches Meilleur smiley = #helico# Obligatory XKCD

2

J'ai peut être pas été clair dans mes explications, je m'en rend compte en me relisant.

En fait je cherche s'il existe en php une variable qui donne l'url de la racine du site (pas simplement /var/www/) ou alors une fonction du style ma_fonction_utile(monfichier.php) qui retournerai l'url de "monfichier.php" sous la forme http://monsite/dossier/de/monfichier/.

J'ai vu qu'il y avait basename() qui faisait pratiquement l'inverse et je trouve bizarre de ne pas avoir trouvé une fonction toute simple ou une variable qui fasse ce que je veux (puisque c'est quand même un besoin récurrent dans la conception de sites web).
avatar
"If you see strict DRM and copy protection that threatens the preservation of history, fight it: copy the work, keep it safe, and eventually share it so it never disappears. [...] no one living 500 years from now will judge your infringing deeds harshly when they can load up an ancient program and see it for themselves."

Benj Edwards - Why History Needs Software Piracy

- - -
Achat ou échange: topic de mes recherches Meilleur smiley = #helico# Obligatory XKCD

3

regarde les variables
$_SERVER["DOCUMENT_ROOT"]
$_SERVER["SCRIPT_URI"]
$_SERVER["SCRIPT_URL"] / $_SERVER["REQUEST_URI"]
$_SERVER["SERVER_NAME"]

avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

4

./2 : je sais pas si ça vient de moi, mais je n'ai toujours pas compris la question avec ta 2eme explication ; tu veux quoi, à partir de quoi, et quand tu mentionnes la racine ou des chemins, est-ce que tu parle des chemins locaux sur ton serveur ou des chemins virtuels pour accéder aux pages en HTTP ? (parceque tu évoques les deux à la fois dans ton post)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

5

$httpdir="http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];


ça me donne a peu près ce que je veux à savoir http://localhost/dossier/monfichier.php

j'ai plus qu'à rajouter un substr() pour enlever le nom du fichier.

Mais je trouve que ça fait bricolo pour une fonction qui a mon avis est assez indispensable, surtout quand on veut faire des includes sans se soucier du chemin relatif.
avatar
"If you see strict DRM and copy protection that threatens the preservation of history, fight it: copy the work, keep it safe, and eventually share it so it never disappears. [...] no one living 500 years from now will judge your infringing deeds harshly when they can load up an ancient program and see it for themselves."

Benj Edwards - Why History Needs Software Piracy

- - -
Achat ou échange: topic de mes recherches Meilleur smiley = #helico# Obligatory XKCD

6

Pardon si je n'ai pas été assez clair.

En fait mon problème c'est de ne pas avoir à jongler avec les chemins relatifs dans les include() d'où ma volonté de créer une variable avec le chemin physique vers le fichier.

Ensuite dans mon code j'ai des formulaires qui POST et qui GET vers des pages dont je spécifie l'URL.

...

là en écrivant je me rend compte que je cherche pour rien depuis dtaleur. Si je met une URL complète dans mon <form action=...> genre http://localhost/dossier/moncheckeurdeformulaire.php ça ne sera pas valable de l'extérieur! Puisque pour les autres machines localhost pointera vers leur propre localhost!
avatar
"If you see strict DRM and copy protection that threatens the preservation of history, fight it: copy the work, keep it safe, and eventually share it so it never disappears. [...] no one living 500 years from now will judge your infringing deeds harshly when they can load up an ancient program and see it for themselves."

Benj Edwards - Why History Needs Software Piracy

- - -
Achat ou échange: topic de mes recherches Meilleur smiley = #helico# Obligatory XKCD

7

et PATH_INFO ca te filerait pas ce que tu veux? (SERVER + PATH_INFO en fait)

8

des include sans se soucier du chemin relative :

include(dirname(__FILE__).'/.../tonfichier.inc.php');


des liens à partir de la racine d'un site :

<a href="/tonlien">blablabla</a>
Ancien pseudo : lolo

9

voici un bout de code que je place dans le chargement de mon template

les lignes enlevant "data" et "kunden" sont là à cause d'un petit souci de lien relatif avec 1&1
la ligne "_template/class" est là car c'est le chemin de la classe de mon template

	if (!defined('APPLI_PATH'))
	{
		function transformPath($path)
		{
			$path = str_replace('\', '/', $path).'/';
			$path = str_replace('//', '/', $path);
			return $path;
		}

		$path = transformPath(dirname(__FILE__));
		$path = preg_replace('/_template\/class\/$/isU', '', $path);
		define('APPLI_PATH', $path);

		$root = transformPath($_SERVER['DOCUMENT_ROOT']);
		$root = preg_replace('|^/data|isU',	'', $root);
		$root = preg_replace('|^/kunden|isU',	'', $root);
		$host = $_SERVER['HTTP_HOST'];
		$path = 'http://'.$host.'/'.str_replace($root , '', $path);

		define('APPLI_URL', $path);

		unset($root);
		unset($host);
		unset($path);

	}
Ancien pseudo : lolo