PHP如何去dirname上一级(__ FILE__)

我有一个文件夹结构如下:

mydomain.com ->Folder-A ->Folder-B 

我有一个数据库的string是“../Folder-B/image1.jpg”,它指向文件夹-B中的图像。

在文件夹A的脚本里面,我使用dirname( FILE )来获取文件名,我得到了mydomain.com/Folder-A 。 在这个脚本里面,我需要得到一个string'mydomain.com/Folder-B/image1.jpg 。 我试过了

 $path=dirname(__FILE__).'/'.'../Folder-B/image1.jpg'; 

这显示为mydomain.com%2FFolder-A%2F..%2FFolder-B%2Fimage1.jpg

这是一个Facebook分享button,这不能获取正确的图像。 任何人都知道如何正确的path?

编辑:我希望得到一个url >>> mydomain.com%2FFolder-B%2Fimage1.jpg

对于PHP <5.3使用:

 $upOne = realpath(dirname(__FILE__) . '/..'); 

或者在PHP 5.3+中使用:

 $upOne = realpath(__DIR__ . '/..'); 

尝试这个

 dirname(dirname( __ FILE__)) 

编辑:删除“./”,因为它是不正确的语法。 没有它,它完美的作品。

你可以使用PHP的dirname函数。 <?php echo dirname(__DIR__); ?> <?php echo dirname(__DIR__); ?> 。 这会给你__DIR__的父目录的__DIR__ ,它存储当前目录。

如果你碰巧有PHP 7.0,你可以使用水平。

dirname( __FILE__, 2 )与第二个参数,你可以定义你想要返回的级别的数量。

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

你可以使用实时path去除非理性的部分:

 // 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上,也可以用URLreplace\

上一层,我用过:

 str_replace(basename(__DIR__) . '/' . basename(__FILE__), '', realpath(__FILE__)) . '/required.php'; 

或者用于php <5.3:

 str_replace(basename(dirname(__FILE__)) . '/' . basename(__FILE__), '', realpath(__FILE__)) . '/required.php'; 

我使用这个,如果有一个绝对path(这是一个例子):

 $img = imagecreatefromjpeg($_SERVER['DOCUMENT_ROOT']."/Folder-B/image1.jpg"); 

如果有照片要显示,这就足够了:

 echo("<img src='/Folder-B/image1.jpg'>");