2008-12-29 6 views
2

Je suis en train d'apprendre le PHP pour un projet, et j'ai une tonne de questions stupides à faire. Le premier est le suivant. J'ai une structure comme ceci:Page d'en-tête en PHP qui prend en compte le répertoire de l'application

  • index.php
  • header.php
  • images/
  • données
    • data.php

Maintenant, le problème est que je veux inclure le fichier header.php dans les données. fichier php. Ce n'est pas un problème.

Le problème que j'ai est que header.php a un lien vers le dossier images d'une manière relative. Ainsi, les images ne seront pas chargées.

Pour aggraver les choses, cette structure est sous un alias spécifique, donc je ne peux pas ajouter un/au début du lien vers l'image.

Ce dont j'ai besoin, je suppose, est un moyen d'obtenir le chemin de l'application dans le script. De cette façon, je peux me référer aux images sans me soucier où l'inclusion est faite.

Comment obtenez-vous ce chemin en PHP?

Répondre

2

Essayez d'inclure le fichier comme par exemple:

<?php 
    include($_SERVER['DOCUMENT_ROOT'].'/data/data.php/'); 
?> 

Le DOCUMENT_ROOT retourne le chemin du dossier racine, situé sur le serveur web de votre site Web.

0

Jetez un oeil à $_SERVER['PATH_TRANSLATED']

0

Utilisez set_include_path (get_include_path(). PATH_SEPARATOR. $ New_path) où $ new_path devrait vous permettre de passer de votre dossier racine absolu au résultat de getcwd(). Assurez-vous d'ajouter ce chemin d'inclusion au fichier principal afin que le code ne soit pas répété pour chaque fichier de données /. Cela permettra également de s'assurer que vous n'êtes pas dérangé par le même problème à nouveau.

2

Beaucoup de gens utilisent quelque chose comme ça. Le dirname(__FILE__) renverra le répertoire du script en cours. Ensuite, vous concaténer cela au chemin relatif au script que vous incluez.

require(realpath(dirname(__FILE__).'/lib/Database.php')); 
+0

J'ai déjà vu ça quelque part avant .... o oui c'était ma réponse! –

0

Toutes les bonnes réponses PHP étant déjà prises, je vous suggère de regarder l'autre sens: est-il quelque chose qui vous empêche de lier l'image src="/images/yourimage.gif"? De cette façon, l'image se chargera peu importe d'où vous l'appelez.

+0

C'est exactement mon problème! Je ne peux pas faire /images/yourimage.gif car je ne sais pas dans quel dossier résidera l'application. Ce pourrait être /app1/images/yourimage.gif ou /app2/images/yourimage.gif –