Re: How can I replace $_SERVER["DOCUMENT_ROOT"] in PHP 7.0?
| From: | Bo Berglund | Date: | Mon, 13 Sep 2021 20:17:48 +0000 |
| Subject: | Re: How can I replace $_SERVER["DOCUMENT_ROOT"] in PHP 7.0? | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-327672@lists.php.net to get a copy of this message | ||
On Mon, 13 Sep 2021 20:36:35 +0100, Ashley Sheridan <ash@ashleysheridan.co.uk>
wrote:
>> include_once ('appdbdata.php');
>>
>> THen seemingly all worked, but only until a call was made to a php file at a
>> deeper location which also included this file...
>>
>Have you looked at __DIR__ ?
>https://www.php.net/manual/en/language.constants.magic.php
Yes, I have tested this php file located in the htdocs/ dir:
<?php
ini_set('display_errors', '1');
set_include_path(get_include_path().PATH_SEPARATOR.dirname($_SERVER['DOCUMENT_ROOT'],1)."/php");
include ('logindata.php');
echo "Including: "
.dirname($_SERVER['DOCUMENT_ROOT'],1)."/php/logindata.php";
echo "<br>Mail sender= " . $mailsender ;
echo '<br>Dir= ' . __DIR__ ;
echo "<br>DocRoot= " . dirname($_SERVER["DOCUMENT_ROOT"],1) .
"/";
?>
The output was this:
Including: /usr/services/vux/apache/php/logindata.php
Mail sender=
Dir= /data/25/2/158/91/2484743/user/2721122/htdocs
DocRoot= /usr/services/vux/apache/
The strange thing is that even though I have set include_path according to the
selected solution in this stackoverflow thread:
https://stackoverflow.com/questions/44984560/what-is-the-php7-version-of-serverhome
it does not pick up the logindata.php file where $mailsender is defined.
If I move the test php file into /php then it picks up the information since it
is in the same dir.
Note that __DIR__ and dirname($_SERVER['DOCUMENT_ROOT'],1) return completely
different paths!
It really seems very strange that they have removed this function without
supplying a new version...
--
Bo Berglund
Developer in Sweden