88

次のようなフォルダー構造があります。

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 の共有ボタン用で、正しい画像を取得できません。パスを正しく取得する方法を知っている人はいますか?

編集: URL を取得したいと考えています >>>mydomain.com%2FFolder-B%2Fimage1.jpg

4

9 に答える 9

251

PHP < 5.3 の場合:

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

PHP 5.3 から 5.6 では、以下を使用します。

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

PHP >= 7.0 の場合:

$upOne = dirname(__DIR__, 1);
于 2012-06-19T05:22:01.390 に答える
22

たまたまphp 7.0+を使用している場合は、レベルを使用できます。

dirname( __FILE__, 2 )2 番目のパラメーターを使用すると、戻りたいレベルの量を定義できます。

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

于 2016-12-22T09:52:18.110 に答える
18

これを試して

dirname(dirname( __ FILE__))

編集:正しい構文ではないため、「./」を削除しました。それがなければ、それは完全に機能します。

于 2012-06-19T05:27:24.990 に答える
6

PHP の dirname 関数を使用できます。 <?php echo dirname(__DIR__); ?>. __DIR__これにより、現在のディレクトリを格納するの親ディレクトリの名前が得られます。

于 2012-06-19T05:23:55.353 に答える
2
dirname(__DIR__,level);
dirname(__DIR__,1);

レベルはフォルダに何回戻るかです

于 2019-01-17T11:01:36.907 に答える
0

1レベル上で、私は使用しました:

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

またはphp <5.3の場合:

str_replace(basename(dirname(__FILE__)) . '/' . basename(__FILE__), '', realpath(__FILE__)) . '/required.php';
于 2015-03-03T20:37:57.240 に答える
-2

絶対パスがある場合はこれを使用します(これは例です):

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

表示する画像がある場合は、これで十分です。

echo("<img src='/Folder-B/image1.jpg'>");
于 2012-06-19T11:25:41.220 に答える