У меня есть структура папок следующим образом:
mydomain.com ->Folder-A ->Folder-B
У меня есть строка из базы данных, которая является «../Folder -B/image1.jpg», которая указывает на изображение в папке-B.
Внутри скрипта в папке-A я использую dirname ( FILE ) для извлечения имени файла, и я получаю mydomain.com/Folder-A
. Внутри этого скрипта мне нужно получить строку с надписью 'mydomain.com/Folder-B/image1.jpg
. Я пытался
$path=dirname(__FILE__).'/'.'../Folder-B/image1.jpg';
Это отображается как mydomain.com%2FFolder-A%2F..%2FFolder-B%2Fimage1.jpg
Это для кнопки общего доступа к facebook, и это не позволяет получить правильное изображение. Кто-нибудь знает, как правильно получить путь?
Изменить: Я надеюсь получить URL >>> mydomain.com% 2FFolder-B% 2Fimage1.jpg
Для PHP <5.3 используйте:
$upOne = realpath(dirname(__FILE__) . '/..');
Или в PHP 5.3+ используйте:
$upOne = realpath(__DIR__ . '/..');
Попробуй это
dirname(dirname( __ FILE__))
Изменить: удалить «./», потому что это неправильный синтаксис. Без этого он работает отлично.
Вы можете использовать функцию dirname PHP. <?php echo dirname(__DIR__); ?>
<?php echo dirname(__DIR__); ?>
. Это даст вам имя родительского каталога __DIR__
, в котором хранится текущий каталог.
Если у вас есть php 7.0, вы можете использовать уровни.
dirname( __FILE__, 2 )
со вторым параметром, вы можете определить количество уровней, на которые вы хотите вернуться.
Вы можете использовать realpath
для удаления необязательной части:
// One level up echo str_replace(realpath(dirname(__FILE__) . '/..'), '', realpath(dirname(__FILE__))); // Two levels etc. echo str_replace(realpath(dirname(__FILE__) . '/../..'), '', realpath(dirname(__FILE__)));
В окнах также заменить \
с /
если нужно, в URL.
Один уровень выше, я использовал:
str_replace(basename(__DIR__) . '/' . basename(__FILE__), '', realpath(__FILE__)) . '/required.php';
или для php <5,3:
str_replace(basename(dirname(__FILE__)) . '/' . basename(__FILE__), '', realpath(__FILE__)) . '/required.php';
Я использую это, если существует абсолютный путь (это пример):
$img = imagecreatefromjpeg($_SERVER['DOCUMENT_ROOT']."/Folder-B/image1.jpg");
если есть фотография для показа, этого достаточно:
echo("<img src='/Folder-B/image1.jpg'>");