Intereting Posts
Удаление нескольких белых пространств Неопределенная константа класса 'MYSQL_ATTR_INIT_COMMAND' в константе неопределенного класса (PHP 5.5.3) Ошибка сайта Codeigniter 404 / .htaccess Как выбрать из динамического столбца через переменную с PDO? Кэширование с разбивкой по страницам, очистка от обновления – как решить? Кнопка загрузки изображения PHP php – пользовательский сеанс / cookie действительная ошибка перенаправления Создать базу данных в Shell Script – конвертировать из PHP php includes есть ли способ включить файл, относящийся только к этому документу? Простой PHP / MySQL Создание сценария таблицы Symfony2: Поиск маршрута «GET / lucky / number» не найден. Как скрыть файлы конфигурации из прямого доступа? Интерфейс с запущенными приложениями в PHP? Почему PHP не автоматически вызывает родительские конструкторы? Импорт / вставка продукта с использованием API-интерфейсов Volusion

php, как перейти на один уровень вверх по dirname (__ FILE__)

У меня есть структура папок следующим образом:

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 ) со вторым параметром, вы можете определить количество уровней, на которые вы хотите вернуться.

    http://php.net/manual/en/function.dirname.php

    Вы можете использовать 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'>");