FUDforum
Fast Uncompromising Discussions. FUDforum will get your users talking.

Home » Imported messages » comp.lang.php » Why does relative include fail?
Show: Today's Messages :: Polls :: Message Navigator
Return to the default flat view Create a new topic Submit Reply
Re: Why does relative include fail? [message #174461 is a reply to message #174448] Sun, 12 June 2011 21:12 Go to previous message
Jerry Stuckle is currently offline  Jerry Stuckle
Messages: 2598
Registered: September 2010
Karma:
Senior Member
On 6/11/2011 9:00 PM, Disc Magnet wrote:
> disc@puff:~/php$ ls
> a.php data include
>
> disc@puff:~/php$ tree
> .
> ├── a.php
> ├── data
> │ └── d.php
> └── include
> ├── b.php
> └── c.php
>
> 2 directories, 4 files
>
> disc@puff:~/php$ cat a.php
> a.php is including include/b.php ...
> <?php include "include/b.php" ?>
>
> disc@puff:~/php$ cat include/b.php
> b.php is including c.php and ../data/d.php ...
> <?php include "c.php" ?>
> <?php include "../data/d.php" ?>
>
> disc@puff:~/php$ cat include/c.php
> c.php
>
> disc@puff:~/php$ cat data/d.php
> d.php
>
> disc@puff:~/php$ php a.php
> a.php is including include/b.php ...
> b.php is including c.php and ../data/d.php ...
> c.php
> PHP Warning: include(../data/d.php): failed to open stream: No
> such file or directory in /home/disc/php/include/b.php on line 3
> PHP Warning: include(): Failed opening '../data/d.php' for
> inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /home/
> disc/php/include/b.php on line 3
> disc@puff:~/php$
>
> Why does `include "c.php"` succeed but `include "../data/d.php"` fail?
>
> http://www.php.net/manual/en/function.include.php mentions: "If a path
> is defined — whether absolute (starting with a drive letter or \ on
> Windows, or / on Unix/Linux systems) or relative to the current
> directory (starting with . or ..) — the include_path will be ignored
> altogether. For example, if a filename begins with ../, the parser
> will look in the parent directory to find the requested file. "
>
> Parent directory of what?

In addition to what Mathieu said, a better way is to always use paths
relative $_SERVER['DOCUMENT_ROOT']. This will end up as an absolute
path on the server, but always relative the same point - the document
root specified in your server configuration.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
[Message index]
 
Read Message
Read Message
Read Message
Previous Topic: test vps (hosting) performance
Next Topic: variable value gets lost
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ]

Current Time: Fri Nov 29 23:54:38 GMT 2024

Total time taken to generate the page: 0.04439 seconds