我有一个文件夹结构如下:
mydomain.com
->Folder-A
->Folder-B
我有一个来自数据库的字符串是' ../ Folder-B / image1.jpg',它指向Folder-B中的图像。
在Folder-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分享按钮,但无法获取正确的图像。任何人都知道如何正确地获得路径?
编辑:我希望得到一个网址>>> mydomain.com%2FFolder-B%2Fimage1.jpg
答案 0 :(得分:151)
对于PHP< 5.3使用:
$upOne = realpath(dirname(__FILE__) . '/..');
在PHP 5.3到5.6中使用:
$upOne = realpath(__DIR__ . '/..');
在PHP> = 7.0中使用:
$upOne = dirname(__DIR__, 1);
答案 1 :(得分:15)
如果你碰巧拥有php 7.0+,你可以使用关卡。
带有第二个参数的 dirname( __FILE__, 2 )
您可以定义要返回的等级数量。
答案 2 :(得分:14)
试试这个
dirname(dirname( __ FILE__))
编辑:删除“./”,因为它的语法不正确。如果没有它,它就能完美运作。
答案 3 :(得分:6)
您可以使用PHP的dirname函数。
<?php echo dirname(__DIR__); ?>
。
这将为您提供__DIR__
的父目录的名称,该目录存储当前目录。
答案 4 :(得分:1)
您可以使用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__)));
在Windows上,如果需要,请将\
替换为/
。
答案 5 :(得分:0)
升级一级,我用过:
str_replace(basename(__DIR__) . '/' . basename(__FILE__), '', realpath(__FILE__)) . '/required.php';
或用于php&lt; 5.3:
str_replace(basename(dirname(__FILE__)) . '/' . basename(__FILE__), '', realpath(__FILE__)) . '/required.php';
答案 6 :(得分:0)
对于谁,共享托管环境失败,仍然有机会使当前PHP低于7.0
谁没有dirname( __FILE__, 2 );
,则可以使用关注对象。
function dirname_safe($path, $level = 0){
$dir = explode(DIRECTORY_SEPARATOR, $path);
$level = $level * -1;
if($level == 0) $level = count($dir);
array_splice($dir, $level);
return implode($dir, DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR;
}
print_r(dirname_safe(__DIR__, 2));
答案 7 :(得分:0)
if ((a == b && a == c) ||
(b == c && b == d) ||
(c == d && c == a) ||
(d == a && d == b) ||
(a == b && a == c && a == d)) {
continue;
} else {
printf("%d,%d,%d,%d\n", a,b,c,d);
}
级别是您将回到该文件夹多少次
答案 8 :(得分:-3)
我使用它,如果有绝对路径(这是一个例子):
$img = imagecreatefromjpeg($_SERVER['DOCUMENT_ROOT']."/Folder-B/image1.jpg");
如果要显示图片,这就足够了:
echo("<img src='/Folder-B/image1.jpg'>");