php require_once path confusion
I was writing an web app in php, when i encountered a strange situation. I wish to clear my confusion. To illustrate my problem, consider a web app of this structure:

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

contents of these files:

index.php:

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

f1.php:

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

f2.php: blank

now when I try to open index.php in my browser I get this error:

    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

Is there something obvious I'm missing? how do include paths work in php?

---------------

Before I asked this question, I attempted to experiment and find out. I set up another test, like so:

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

index.php:

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


f1.php:

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

f2.php: blank

To my surprise (and utter confusion), this worked out fine!

so what is the secret behind the path resolution?

Thanks

PS I saw [this question][1], but it still does not answer the second case that i've stated here.


  [1]: http://stackoverflow.com/questions/1966533/
php require_once path confusion
===

I was writing an web app in php, when i encountered a strange situation. I wish to clear my confusion. To illustrate my problem, consider a web app of this structure:

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

contents of these files:

index.php:

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

f1.php:

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

f2.php: blank

now when I try to open index.php in my browser I get this error:

    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

Is there something obvious I'm missing? how do include paths work in php?

---------------

Before I asked this question, I attempted to experiment and find out. I set up another test, like so:

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

index.php:

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


f1.php:

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

f2.php: blank

To my surprise (and utter confusion), this worked out fine!

so what is the secret behind the path resolution?

Thanks

PS I saw [this question][1], but it still does not answer the second case that i've stated here.


  [1]: http://stackoverflow.com/questions/1966533/