2

プロジェクトで PHP のクラッシュ学習を行っていますが、ばかげた質問が山ほどあります。1つ目は以下。私はこのような構造を持っています:

  • index.php
  • header.php
  • 画像/
  • データ
    • data.php

さて、問題は、header.php ファイルを data.php ファイルに含めたいということです。それは問題ありません。

私が抱えている問題は、header.php が images フォルダーへのリンクを相対的に持っていることです。そのため、画像は読み込まれません。

さらに悪いことに、この構造は特定のエイリアスの下にあるため、画像へのリンクの先頭に / を追加することはできません。

私が必要としているのは、スクリプトでアプリケーションへのパスを取得する方法だと思います。そうすれば、インクルードがどこで行われるかを気にせずに画像を参照できます。

PHPでこのパスを取得するにはどうすればよいですか?

4

5 に答える 5

2

多くの人がこのようなものを使用しています。dirname(__FILE__)は、現在のスクリプトのディレクトリを返します。次に、それを、含めているスクリプトへの相対パスに連結します。

require(realpath(dirname(__FILE__).'/lib/Database.php'));
于 2008-12-29T20:03:26.580 に答える
2

次のようなファイルを含めてみてください。

<?php
    include($_SERVER['DOCUMENT_ROOT'].'/data/data.php/');
?>

DOCUMENT_ROOTは、Web サイトの Web サーバーにあるルート フォルダーのパスを返します。

于 2008-12-29T19:11:24.123 に答える
0

すべての適切な PHP の回答は既に取得されています。別の方法で見ることをお勧めしますsrc="/images/yourimage.gif"。このようにして、どこから呼び出しても画像が読み込まれます。

于 2008-12-29T20:53:45.277 に答える
0

を見てみましょう$_SERVER['PATH_TRANSLATED']

于 2008-12-29T18:59:01.827 に答える
0

set_include_path(get_include_path().PATH_SEPARATOR.$new_path) を使用します。ここで、$new_path は、絶対ルート フォルダーから getcwd() の結果までずっと取得する必要があります。

data/. これにより、同じ問題に再び悩まされることもなくなります。

于 2008-12-29T19:16:46.673 に答える