
共有サーバーを利用していますが、
public_html/index.php より 一つ上のpublic_htmlの階層にあるimageフォルダの中のファイル(phpファイルとjpgファイル)にアクセスしたいのですが、phpファイルは読み込めるのですが、画像ファイルを読み込むことができません。原因が分かりません。もし何か気付きましたら教えてください。よろしくお願いします。( imgaeフォルダと画像ファイルのパーミッションは777にしています。phpファイルは644です。)
<!--index.php->
<?php
require_once("../image/HelloWord.php");
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>TEST</title>
</head>
<body>
<img src="../image/HelloWorld.jpg"/>
</body>
</html>
No.5ベストアンサー
- 回答日時:
> imageフォルダに同様に入れたHelloWorld.phpにechoでHello World> を書きましたが、それの場合は、public_html/index.phpのほうで読
> み込むと、表示される
当然です。
それはPHPとしてサーバ側の処理であって、HTMLがブラウザで解釈されてクライアントからアクセスされるURLとは別物です。
> 仮にバイナリーデータで得たものをHtmlに出力するという形になる
> と、どのような形が考えられますでしょうか?
画像ファイルのバイナリデータを表示する方法は、以下ページのような方法を取ります。
http://kaworu.jpn.org/kaworu/2008-04-06-1.php
ただし、当たり前ですが、画像の種類によってバイナリデータは異なりますし、その画像をバイナリデータとして表示するということは、そもそも公開して構わない情報ということになります。
また、jsファイルもファイル内容を読み込んで全てechoするというなんとも無意味な実装を取ることになります。
ありがとうございます。今回の目的とは異なりますが、違う場面で応用できると思いましたので、感大変謝します。知らないことが多いので、とても参考になります。
No.7
- 回答日時:
答は出尽くしていると思いますが、基本はこれだけ
■共有サーバにはブラウザからみえるファイルと
見えないファイルがある。
■imgタグの画像はブラウザから取りに行くので
ブラウザから見えないファイルは表示できない。
■phpのrequire_onceによるファイル参照は
phpがサーバ側でファイルを読むということなので全く別の話
共有サーバであなたに与えられた公開用フォルダが
public_htmlなら、画像はその下に置かないと
駄目でしょう。
ありがとうございます。PHPを今年に入ってから、勉強しているのですが、最近頭が、ごちゃごちゃになってきて整理する意味でも、まとめの返信に感謝します。たしかにこうして比較してみると、PHPがサーバー側でファイルを読むということと、ブラウザからファイルを読むという違いがあり、しっかりしたイメージで理解することができました。感謝いたします。
No.6
- 回答日時:
因みに画像ファイルをバイナリで処理する典型的なパターンは、
特定のログインユーザーのプロフィール登録において、
画像ファイルのアップロードをした、などの場合です。
誰にでも公開していいものではありませんからね。
つまり、誰にでも公開していい画像ファイル、jsファイル、cssファイルは、
普通にwebroot直下のimage、js、cssディレクトリ内などに設置すべきです。
ありがとうございます。PHPは勉強の身なので、まだ浅く、最近、実験として、ちょうどプロフィール画面を作っていました。ちょうど画像をアップする部分を作っていまして、私の我流でのやり方ですと、アップする画像のファイル名をハッシュ化して、それにユーザーidを加えて区別していました。ちょっとやりかたがこれでいいのか迷っていたので、バイナリ処理に関しては非常に参考になります。
No.4
- 回答日時:
> MVCモデル では、public_htmlの下の階層ではなく、同階層にフォル
> ダを配置して見えない場所で管理する手法がある
それはユーザーに直接参照させないビジネスロジックなどであって、
ユーザーに公開させる画像、jsファイルはいつも通りwebroot配下に
置きます。
htmlファイルに限ってのみ、テンプレートエンジンを利用するなどの
関係上、Viewとして構成され、非公開ディレクトリへ設置します。
返信ありがとうございます。てっきり、public_htmlの階層で操作をするのだと思っていました。非公開ディレクトリというものの理解が間違っていただけに、大変参考になりました。調べて見ると、 .htaccessの設定などがあり、このあたりも弱いところなので、理解したいと思います。

No.2
- 回答日時:
>>index.phpより一つ上のpublic_htmlの階層
1つ上じゃ無いよ。index.phpはpublic_htmlの階層にいる。
それより1個上を指してるんだから、共用サーバの、あなたの管理範囲外。だからアクセス出来る訳が無い。
/image/フォルダはpublic_htmlの下の階層のはず。
つまり、index.phpの下
<img src="../image/HelloWorld.jpg"/>
↓
<img src="image/HelloWorld.jpg"/>
ありがとうございます。MVCモデル では、public_htmlの下の階層ではなく、同階層にフォルダを配置して見えない場所で管理する手法があるとのことなので、質問するに至りました。このあたりはレンタルサーバーによってもことなるのでしょうか?
No.1
- 回答日時:
public_html
├index.php
└image
└HelloWorld.jpg
という構成ならば、index.phpに記される画像パスは以下のいずれかでしょう。
・./image/HelloWorld.jpg
・/image/HelloWorld.jpg
/
├public_html
│└index.php
└image
└HelloWorld.jpg
という構成の場合、imageディレクトリは、Web上で公開している
ディレクトリでないため、アクセスすることはできません。
どうしてもこうしたいならば、PHP側で一旦画像ファイルを読み込み、
バイナリを得た上で、それをHTMLに出力する、という形になると
思います。
2つの解説ありがとうござまいす。後者の説明が私の現状であります。
MVCモデル では、public_htmlの下の階層ではなく、同階層にフォルダを配置して見えない場所で管理する手法があるとのことなので、気になったもので、実験してみました。ただ、imageフォルダに同様に入れたHelloWorld.phpにechoでHello Worldを書きましたが、それの場合は、public_html/index.phpのほうで読み込むと、表示されるので、全てが禁止されているわけではないような気がしました。ただ画像だけがどうしても無理でした。
仮にバイナリーデータで得たものをHtmlに出力するという形になると、どのような形が考えられますでしょうか? もし知っていましたら、イメージだけでもお聞かせください。よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HPを開くとダウンロードページ...
-
プログラムの記述のあるPHPファ...
-
FTPコマンドでディレクトリごと...
-
PHPのif文でその処理を途中で抜...
-
Makefile.inとMakefile.am
-
php で C言語のdefineマクロの...
-
タイマー機能を使って指定時間...
-
SQLiteに画像を格納したい
-
絶対パス?絶対アドレス?意味...
-
phpの処理中に画面表示ををする...
-
PHPでサーバーにインストールさ...
-
Illustratorで文字と画像を流し...
-
C# Excelファイルへの画像挿入。
-
画像ファイルの名前をそのままU...
-
Subversionのリポジトリの削除
-
<A href ~ と一緒に値を渡すには
-
php4_moduleをロードしようとす...
-
PHPの戻り値をWINDOWSバッチフ...
-
「クラス関数」「メンバ関数」...
-
php初心者がWordPressを理解す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
グーグル検索について
-
フォルダ内のHTMLにランダ...
-
DBのデータをHTMLファイル...
-
PHPについて質問です。
-
PHPファイルをHTMLにリネーム
-
file_get_contents()の動きが読...
-
階層の少ないページ作り
-
ポータルサイト構築
-
あるマルチバイト文字が表示さ...
-
PHPでの複数ファイル出力
-
PHPとhtmlの関係
-
index.phpって何ですか? 具体...
-
社内イントラネットのHPにアク...
-
拡張子をhtmlにすることのメリ...
-
PHPスクリプト実行後に別URLを...
-
Smartyの検索エンジンとの相性は?
-
埋め込み型スクリプトでhtmlの...
-
Google Analyticsのモバイル用
-
phpのheader関数でページ移動さ...
-
VScode文字の色の変更について
おすすめ情報