У меня есть символическая ссылка /var/www/html/lib/
что указывает на /var/www/application/lib/
,
В файле /var/www/application/lib/testing/imageMaker2/otherFile.php
Я создал новый файл /var/www/application/lib/testing/imageMaker2/images/test.png
,
Далее я желаю otherFile.php
отправлять URL-адрес относительно корня документа веб-сервера клиенту (т.е. /lib/testing/imageMaker2/images/test.png
).
Без предварительного знания символической ссылки, как это возможно?
test.php
<?php
require_once('otherFile.php');
otherFile(__DIR__.'/images/'); //Or what ever upload directory is desired.
?
otherFile.php
<?php
function otherFile($path) {
$path_parts = pathinfo($_SERVER['PHP_SELF']);
$image='test.png';
echo('$path => '.$path."\n");
echo('$image => '.$image."\n");
echo('$path/$image => '.$path.'/'.$image."\n");
echo('__DIR__ => '.__DIR__."\n");
echo('__FILE__ => '.__FILE__."\n");
echo('$_SERVER[SCRIPT_FILENAME] => '.$_SERVER['SCRIPT_FILENAME']."\n");
echo('realpath($_SERVER[SCRIPT_FILENAME]) => '.realpath($_SERVER['SCRIPT_FILENAME'])."\n");
echo('$_SERVER[PHP_SELF] => '.$_SERVER['PHP_SELF']."\n");
echo('$_SERVER[DOCUMENT_ROOT] => '.$_SERVER['DOCUMENT_ROOT']."\n");
echo('$path_parts[dirname] => '.$path_parts['dirname']."\n");
echo('dirname($_SERVER[PHP_SELF]) => '.dirname($_SERVER['PHP_SELF'])."\n");
}
?>
ВЫХОД
$path => /var/www/application/lib/testing/imageMaker2/images/
$image => test.png
$path/$image => /var/www/application/lib/testing/imageMaker2/images//test.png
__DIR__ => /var/www/application/lib/testing/imageMaker2
__FILE__ => /var/www/application/lib/testing/imageMaker2/otherFile.php
$_SERVER[SCRIPT_FILENAME] => /var/www/html/lib/testing/imageMaker2/test.php
realpath($_SERVER[SCRIPT_FILENAME]) => /var/www/application/lib/testing/imageMaker2/test.php
$_SERVER[PHP_SELF] => /lib/testing/imageMaker2/test.php
$_SERVER[DOCUMENT_ROOT] => /var/www/html
$path_parts[dirname] => /lib/testing/imageMaker2
dirname($_SERVER[PHP_SELF]) => /lib/testing/imageMaker2
Согласно вашим комментариям …
$path_parts = pathinfo($_SERVER['PHP_SELF']);
echo $path_parts['dirname'];
Тогда вы просто извлекаете то, что хотите.
Других решений пока нет …