ホームページ >バックエンド開発 >PHPチュートリアル >php_PHP チュートリアルでの絶対パスと相対パスの使用についての簡単な説明
以下の 2 つのコードを見てください:
コード 1: 相対アドレスアクセス
[php]
エコー $_SERVER['DOCUMENT_ROOT']
?>
[php]
エコー $_SERVER['DOCUMENT_ROOT']
?>
これら 2 つのことはしばらく脇に置いて、純粋な HTML コードについて話しましょう (追記: 今はテストなので簡単に書きますが、結果は得られます)
コード 1: 相対アドレス (test_image_1.html)
[html]
[html] plaincopy を表示
(追記: 画像ディレクトリ: C:/Program Files/Zend/Apache2/htdocs/1.jpg
html ディレクトリ: C:/Program Files/Zend/Apache2/htdocs/test_image/)
注: Appache はこのマシンにインストールされており、Zend の融合パッケージに含まれています。
2 番目の方法は、appache 経由でアクセスし、URL: 127.0.0.1/test_image/test_image_1 を使用することです。結果は、相対パスは正常に実装できますが、絶対パスは表示できません。
多くの情報を確認した後、最終的に結論を導き出すことができます。コンピュータの下では絶対パスに簡単にアクセスできるため、html ファイルを直接開きます。ただし、WEB 経由でアクセスすると、WEB のデフォルトのルート ディレクトリは htdocs/ になります。コンピュータでは、このディレクトリは C:/Program Files/Zend/Apache2/htdocs/ になります。しかし、WEB はそのことを認識しません。その理解にはcがあります。つまり、あなたがコンピュータ内の絶対パスだと思っている絶対パスですが、このパスはWEB上では認識されません。
正しい方法は次の 2 つのコードである必要があります:
コード 1: 相対アドレス (test_image_1.html)
[html]
コード 2: 絶対アドレス (test_image_2.html)
[html] plaincopy を表示ここでの次のディレクトリは / なので、これは絶対パスです。
画像の場所を変更した場合、コンピューター上の絶対パスは C:/Program Files/Zend/Apache2/htdocs/111/222/333/1.jpg
になります。
次に、コードは次のように記述する必要があります:
[html]
要約すると、コンピューターの絶対パスと WEB サーバーの絶対パスを混同しないでください。
上記の説明で、HTML モードでの絶対パスと相対パスが理解できるはずです。
それでは、記事の冒頭で示した PHP の形式を見てみましょう。
コード 1: 相対アドレス アクセス test_image_1.php
[php]
エコー $_SERVER['DOCUMENT_ROOT']
?>
コード 2: 絶対アドレス アクセス test_image_2.php
[php] plaincopy を表示
エコー $_SERVER['DOCUMENT_ROOT']
?>
まず、PHP の実行方法を理解する必要があります。PHP にアクセスすると、PHP が appache によって解析された後 (つまり、PHP の実行が完了し、いくつかの結果が表示されます)、PHP が実行されます。 HTML コードが生成されます。簡単に言うと、あなたが持っている PHP は実際には HTML と同じです。 PHP はサーバー側で実行され、ユーザーに配信されます。そのため、最初は PHP を使用していくつかのアクション (フォームの送信など) を実行することは、実際には PHP のアクションではなく、HTML のアクションであるということを完全には理解していませんでした。手に入って表示できるのは、.php 接尾辞が付いた HTML コードです。
PHP から見た絶対アドレスについて話しましょう。もちろん、PHP を使用してファイルを開き、画像のサイズと解像度を読み取る場合、PHP はコンピューターの絶対パスを知っています。お使いのコンピュータでは、絶対パスを使用しても問題ありません (相対パスの方が問題は少ないです)。
ただし、PHP が実行されると、結果は Web ページに表示されます。たとえば、次のようになります。
[php]
このコードはPHPファイル内に書かれていますが、あくまでHMTLコードなので現時点ではPHPだけの話ではありませんが、HTMLが起動し、HTMLがWEBに関係していて、WEBがパスを認識してくれません(理由は上で述べた)。したがって、コンピューターの絶対パスを知らないのは PHP ではなく、WEB です。
一つ言及しておきますが、WEB のルート ディレクトリは / です。ただし、画像はルート ディレクトリの 1 つ上のレベルからもアクセスできます。コードは次のとおりです。
[html]
1.jpg はルート ディレクトリの 1 レベル上にあり、1 レベル戻るとアクセスできます (../../1.jpg)
著者:wolinxuebin
http://www.bkjia.com/PHPjc/478111.html