Bonjour,

Le sujet a longuement été évoqué et j'ai trouvé de nombreux forums où il était abordé, sans toutefois trouver de réponses précises. Je relance donc le sujet en espérant y trouver une réponse

Voici l'arborescence de mon site :

www/monsite/script.php
www/monsite/config.xml
www/monsite/index.php
www/monsite/photos
www/monsite/rubrique_i/mapage_i.html

Le but de mon script.php est de parser le dossier photos afin d'y trouver toutes les images et de modifier en conséquence le fichier config.xml et de renvoyer un echo de tous les liens des images dans la page appelant le script.

Pour appeler le script j'utilise un include :

1. Dans ma page index.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<?php include ("/inc_images.php") ?>
(marche)
2. Dans mes pages : mapage_i.html :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<?php include ("../inc_images.php") ?>
(marche)

1er problème

Je suis obligé de laisser l'include en relatif à partir des pages mapage_i. Si je le passe en absolu, c'est-à-dire : <?php include ("/inc_images.php") ?> j'obtiens l'erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Warning: include(/inc_images.php) [function.include]: failed to open stream: No such file or directory in C:\Program Files\wamp\www\contacts\contacts.php on line 63
 
Warning: include() [function.include]: Failed opening '/inc_images.php' for inclusion (include_path='.;C:\php5\pear') in C:\Program Files\wamp\www\contacts\contacts.php on line 63
2ème problème

Si je met mes liens en relatifs dans mes pages, un soucis demeure pour mon script.php. Je pensais que les chemins définies dans le script étaient relatifs à la position du script. Or il s'avère que ces liens sont relatifs à la position de la page appelant le script.
Ce script étant appelé par des pages n'étant pas au même niveau de l'arborescence, il faut que les chemins soient absolus.

Voici le début de mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<?php
	//chemin du dossier où sont stockées les photos
 
	$dir = "photos";
Ci c'est index.php qui appelle le script, le répertoire "photos" est trouvé. Si c'est mapage_i.php qui l'appelle, l'erreur suivante apparait :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Warning: opendir(photos) [function.opendir]: failed to open dir: No such file or directory in C:\Program Files\wamp\www\inc_images.php on line 17
Je modifie donc le chemin du répertoire en chemin absolu :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<?php
	//chemin du dossier où sont stockées les photos
 
	$dir = "/photos";
Et là, j'ai cette erreur, quelque soit la page qui lance l'include :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Warning: opendir(/photos) [function.opendir]: failed to open dir: No such file or directory in C:\Program Files\wamp\www\inc_images.php on line 17
J'ai essayé la solution avec les variables serveur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<?php
	//chemin du dossier où sont stockées les photos
 
	$dir = $_SERVER["DOCUMENT_ROOT"]."photos";
Cette solution marche pour toutes les pages includant le script mais les images n'apparaissent plus...

Question ?

Existe-t-il une solution pour faire un include d'un script en absolu, ou d'utiliser des chemins absolus dans les scripts PHP ? (de la forme /repertoire/) sinon comment s'en sortir ?
A savoir que je travaille uniquement en local pour l'instant, avec wampserver (option allow url include on)

Merci beaucoup pour votre aide !