0

デフォルトのパスを変更するか、Web サーバーが画像を探すパスを追加しようとしています。htaccessではなくPHPでこれを行うソリューションが本当に欲しいです。

最も基本的な例は、現在の実装を「壊す」ことです。たとえば、次のようなディレクトリがあるとします。

主要/

  • 画像.png
  • index.php

index.php

<?php
// Change the directory WAY out of current directory
chdir('../../../');
echo getcwd(); // DEFINITELY NOT where image.png is located

?>

<img src="image.png" width="402" height="265" alt="1">
<!-- WHY ARE YOU STILL RENDERING?!?! -->

私の言いたいことを理解しているか、質問があるかどうか教えてください。

皆さんありがとう!マット・ミューラー

4

4 に答える 4

5

サーバー ファイル システムの現在の作業ディレクトリと Web サーバーのドキュメント ルートを混同していると思います。

HTML でイメージ要素を作成すると、(ブラウザは) いくつかのパラメータに基づいてソースを探します。

  1. src パスが相対パス (先頭にスラッシュがない) の場合、画像は、<base>設定されている場合は要素の URL に対して相対的に読み込まれ、それ以外の場合は現在の URIが読み込まれます。
  2. src パスが絶対パスの場合、画像はドキュメント ルートの絶対パスから読み込まれます。たとえば、 http://example.com/foo/bar/baz.jpg<img src="/foo/bar/baz.jpg">から読み込まれます。
  3. src が絶対 URI の場合、そこから単純にロードされます。
于 2010-10-27T00:33:27.567 に答える
2

imgタグがクライアントに送信されます。プリプロセッサのディレクトリを変更しても、クライアントのディレクトリは変更されません。これは、 http://example.com/などの現在のページに固定されているためです。

検索するディレクトリを変更するには、各imgタグのsrcを変更する必要があります。

将来の混乱を避けるために、正しいディレクトリの前にプレフィックスを付ける関数を使用できます。

例えば

<img src = "<?php echo produceImageURL('image.png'); ?>" width = "402" height = "265" alt = "1" />
于 2010-10-27T01:28:54.893 に答える
1

PHP の相対パスとページの相対パスは 2 つの別個のものです。

現在の PHP スクリプトのディレクトリを変更しました。ただし、要求されたページとそのリソースは依然として相対的ですmain/index.php

于 2010-10-27T00:30:48.803 に答える
0

jnpcl は正しかった:

<base href="../../../">

ファイルをロードする前に、<head> </head>通常は afterの間に入れます<meta />

于 2011-06-18T07:02:25.230 に答える