Comment fonctionne la résolution de chemin dans require_once?

J'ai écrit une application web en PHP, quand j'ai rencontré une drôle de situation. Pour illustrer mon problème, considérons une application web de cette structure:

/
    index.php
    f1/
        f1.php
    f2/
        f2.php

Contenu de ces fichiers:

index.php:

<?php require_once("f1/f1.php"); ?>

f1.php:

<?php require_once("../f2/f2.php"); ?>

f2.php: vide

maintenant, quand j'essaie de l'ouvrir index.php dans mon navigateur, j'obtiens cette erreur:

Warning: require_once(../f2/f2.php) [function.require-once]: 
failed to open stream: No such file or directory in /var/www/reqtest/f1/f1.php on line 2
Fatal error: require_once() [function.require]: 
Failed opening required '../f2/f2.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/reqtest/f1/f1.php on line 2

Il est évident que je suis absent? comment inclure les chemins de travailler en PHP?


Avant que j'ai posé cette question, j'ai tenté d'explorer et de découvrir. J'ai mis en place un autre essai, comme suit:

/
    index.php
    f1/
        f1.php
        f2.php

index.php:

<?php require_once("f1/f1.php"); ?>

f1.php:

<?php require_once("f2.php"); ?>

f2.php: vide

À ma grande surprise (et la confusion totale), cela a bien marché!

Alors, quel est le secret derrière le chemin de la résolution?

PS j'ai vu cette questionmais il ne répond toujours pas le second cas que j'ai mentionné ici.

source d'informationauteur jrharshath