У меня есть символическая ссылка /var/www/html/lib/
, которая указывает на /var/www/application/lib/
.Устранение символических ссылок и относительных URL-адресов
В файле /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
Почему бы вам просто не связать относительный путь с именем файла, например ''/lib/testing/imageMaker2/". $ filename; '? –
@JulioSoares Относительный путь означает '$ _SERVER ['PHP_SELF']'? – user1032531
Если вы хотите, но тогда вам придется сначала извлечь «test.php». Вместо этого я бы определил константу. Но вы можете даже жестко записать его. –