php как перейти на один уровень вверх по dirname (файл)
у меня есть структура папок выглядит следующим образом:
mydomain.com
->Folder-A
->Folder-B
у меня есть строка из базы данных '../ Папка-B / image1.jpg', который указывает на изображение в папке-B.
внутри скрипта в папке-A я использую dirname (), чтобы получить имя файла, и я получаю
mydomain.com/Folder-A
. Внутри этого скрипта, мне нужно получить строку, которая говорит 'mydomain.com/Folder-B/image1.jpg
. Я пытался!--6-->
$path=dirname(__FILE__).'/'.'../Folder-B/image1.jpg';
Это показывает mydomain.com%2FFolder-A%2F..%2FFolder-B%2Fimage1.jpg
Это для кнопки "Поделиться" facebook, и это не позволяет получить правильное изображение. Кто-нибудь знает, как правильно получить путь?
Edit: я надеюсь получить url >>>mydomain.com%2FFolder-B%2Fimage1.jpg
7 ответов
для PHP
$upOne = realpath(dirname(__FILE__) . '/..');
или в PHP 5.3+ использовать:
$upOne = realpath(__DIR__ . '/..');
попробуй такое
dirname(dirname( __ FILE__))
Edit: removed"./ "потому что это неправильный синтаксис. Без него он работает отлично.
Если у вас есть php 7.0+, вы можете использовать уровни.
dirname( __FILE__, 2 )
со вторым параметром вы можете определить количество уровней, которые вы хотите вернуться.
вы можете использовать функцию dirname PHP.
<?php echo dirname(__DIR__); ?>
.
Это даст вам имя родительского каталога __DIR__
, в котором хранится текущий каталог.
можно использовать realpath
удалить unnessesary часть:
// One level up
echo str_replace(realpath(dirname(__FILE__) . '/..'), '', realpath(dirname(__FILE__)));
// Two levels etc.
echo str_replace(realpath(dirname(__FILE__) . '/../..'), '', realpath(dirname(__FILE__)));
в windows также замените \
С /
если нужно, что в URL.
на один уровень вверх, я использовал:
str_replace(basename(__DIR__) . '/' . basename(__FILE__), '', realpath(__FILE__)) . '/required.php';
или для php
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'>");