1

サブディレクトリ「img」に画像を表示するhtmlファイルimages.htmlがあります。サブディレクトリ内の画像にアクセスするために相対パスを使用します。

私のindex.phpですべてがうまくいかない:

require_once("dir1/dir2/images.html");

これで、相対パスはdir1 / dir2 / images.htmlではなくindex.phpを基準にしており、画像が表示されません。インクルードされたファイルimages.htmlを基準にしたパスを作成する方法はありますか?

ディレクトリ構造

index.php
dir1
   dir2
       images.html
       img
           flower.png

index.php

<?php require_once("dir1/dir2/images.html"); ?>

images.html

<img src="img/flower.png" />
4

2 に答える 2

2

これはHTMLの問題であり、PHPではありません。

ブラウザでアクセスすると、ブラウザは相対パスのベースとして/dir1/dir2/images.html使用/dir1/dir2します(したがって、相対パスimg/flower.pngはに解決され/dir1/dir2/img/flower.pngます)。アクセスする/index.phpと、ベースとして使用/されます(したがって、img/flower.png/img/flower.png見つかりません)。

次のいずれかを実行できます。

  • 画像に絶対パスを使用します(例/dir1/dir2/img/...
  • baseタグを使用して、すべての相対パス(リンク、CSSなどを含む)の新しいベースを設定します-編集:これはあなたの場合には良い考えではないかもしれません:)
于 2013-02-15T12:27:52.213 に答える
0
include(dirname(__FILE__).'/include.php');

REF: http: //php.net/manual/en/language.constants.predefined.php

ファイルのフルパスとファイル名。インクルード内で使用される場合、インクルードされたファイルの名前が返されます。PHP 4.0.2以降、FILEには常にシンボリックリンクが解決された絶対パスが含まれていますが、古いバージョンでは、状況によっては相対パスが含まれていました。

于 2013-02-15T12:27:57.893 に答える