Re: Problem with include PHP 4.3.0
| From: | Goetz Lohmann | Date: | Tue, 04 Feb 2003 16:58:27 +0000 |
| Subject: | Re: Problem with include PHP 4.3.0 | ||
| References: | 1 2 3 4 5 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-134290@lists.php.net to get a copy of this message | ||
Jean-Pierre Gallou schrieb:
> Goetz Lohmann wrote :
>
>> wich means that "testinclude.php" includes "inc/inc1.php"
>> and "inc/inc1.php" includes "inc/inc2.php" ?
>
>
> Right. I'm sorry, I didn't modify testinclude.php as you suggested, but
> inc1.php. With a modified testinclude.php:
> <? include ('./inc/inc1.php'); ?>
> I get:
> Failed opening './inc/inc1.php' for inclusion \
> (include_path='.:..:/usr/local/php-4.3.0/lib/php')
>
> Seems it doesn't like './' ("inc/inc1.php" is OK). I think that since
> the name begins with '.', PHP tries to find a file in the working dir,
> which is null (see below).
this is very strange cause I got it working with "./inc/inc1.php" and with
"inc/inc1.php" ... "/inc/inc1.php" fail cause its searching the file in the
server root ... also "inc1.php" will fail cause it searches it in the
working dir of testinclude.php ... did you set
doc_root = /usr/local/www/htdocs
than maybe leave this blank !
>> insert something like into inc1.php and inc2.php:
>>
>> <?php
>> echo "inc included<br>\n";
>> echo "<br>\n";
>> $folder=dir('inc');
>> // print out folder "inc"
>> while($datei = $folder->read()) {
>> echo "$datei<br>\n";
>> }
>> $folder->close();
>> echo "<br>\n";
>> ?>
>
>
> Unfortunately, this gives nothing. I guess this is because pathnames of
> files are relative to the working dir.
yes if the path not start with "/"
> There are only two variables,
> PATH and TZ in the environment of my Apache server, but nothing about a
> working dir: cwd() returns an empty string, and so does
pwd or
> ls.
> Relative pathnames of included files are apparently resolved through a
> special way, unless they begin with '.' or '..'. But this is not clearly
> described in the documentation, and it's a bit confusing.
if a file is parsed, all include files a relativ to this parsed file.
with phpinfo() you could read the document root in the "PHP Variables"
section which might look like
PHP_SELF /phpinfo.php
_SERVER["DOCUMENT_ROOT"] /usr/local/www/htdocs
...
_SERVER["SCRIPT_FILENAME"] /usr/local/www/htdocs/phpinfo.php
_SERVER["SCRIPT_URI"] http://www.yourdomain.com/phpinfo.php
...
_SERVER["PATH_TRANSLATED"] /usr/local/www/htdocs/phpinfo.php
...
a "." mean working dir and ".." mean parent dir
echo exec('ls');
should print out not a empty string but
testinclude.php
and
echo exec('pwd');
should print "/usr/local/www/htdocs/tests"
--
@ Goetz Lohmann, Germany | Web-Developer & Sys-Admin
\/ ------------------------------------------------------
() He's the fellow that people wonder what he does and
|| why the company needs him, until he goes on vacation.