いつもお世話になっています。
題の通りディレクトリ内の画像の表示がされず困っています。
下記が例になります。
お分かりの方がいらっしゃいましたら教えていただければ助かります。
鈴木一郎
山田太郎
という方がいた場合、
鈴木一郎の$idがi-suzukiとし、山田太郎の$idがt-yamadaとします。
個人ページのため$_GETで鈴木一郎のページと山田太郎のページが見れるようになっています。
例えば
/member/member.php?member=i-suzukiと/member/member.php?member=t-yamada
このページ内にその人の写真が一枚だけでてくるようにしています。
画像は/member/photo/i-suzuki/photo.jpgです。(i-suzikiのところは各個人の$idで変わります。)
ここでご質問なのですが、
/member/photo/の中に$idがあるかを探し、あればその中のphoto.jpgを表示させ、
なければ/member/photo/photo.jpgを表示させるようにしたいのですが、なかなかできません。
コードは
$dirPhoto = opendir('member/photo');
$dirName = opendir('/' .$id);
while($dirList = readdir($dirPhoto)) {
if(!is_dir($dirList.$dirNmae) && !is_link($dirList.$dirNmae)){
$photo = '/member/photo/photo.jpg';
} else {
$photo = '/member/photo/' .$id. '/photo.jpg';
}
}
closedir($photoDir);
としています。
表示させると
$idのディレクトリがある人もいればない人もいるのですが、全てのページで/member/photo/photo.jpgが表示されてしまいます。
どなたか教えていただけないでしょうか?
また、正しいコードも教えていただけると助かります。
No.2ベストアンサー
- 回答日時:
とりあえずサニタイズは別途するとして・・・
readdirすることもないかと
<?PHP
$dirPhoto = 'member/photo/';
$dirName = $id.'/';
$fileName="photo.jpg";
$photo = file_exists($dirPhoto.$dirName.$fileName)?$dirPhoto.$dirName.$fileName:$dirPhoto.$fileName ;
print $photo;
?>
No.1
- 回答日時:
いまいちソースの整合性がわからないのだけど
>$dirName = opendir('/' .$id);
で、$dirNameはリソースを得ているのに
>if(!is_dir($dirList.$dirNmae) ・・・
と文字列のように扱おうとしているのはなぜ?
ご回答有難う御座います。
>>$dirName = opendir('/' .$id);
>で、$dirNameはリソースを得ているのに
>>if(!is_dir($dirList.$dirNmae) ・・・
>と文字列のように扱おうとしているのはなぜ?
$dirPhoto = opendir('member/photo');
でphotoディレクトリ内のものを全て取得していますが、
$dirName = opendir('/' .$id);
はそこからさらに$idのディレクトリを取得して、
連結でif文かなと勝手に思い込んでました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- YouTube youtubeは画面と操作パネルが別々に表示されていたのに画面上にかぶるように表示されるようになった 1 2022/05/08 10:04
- Android(アンドロイド) 【google One】グーグルワンの無料の15GBの容量が不足しています。スマホ内 7 2023/02/05 06:30
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- Google Drive Google Photo 5 2022/03/23 09:39
- カスタマイズ(車) クルマのリアシート交換でこの場合は取り付け可能でしょうか? 4 2023/02/04 08:36
- その他(ニュース・時事問題) 岸田総理がゼレンスキー大統領に贈った「必勝しゃもじ」。どんなものだったの? なんて書いてあったの? 6 2023/03/23 22:09
- ノートパソコン WIN11 プライマリディスプレイのアダプタがNVIDIA 3D Visionをサポートしていない。 2 2022/10/20 00:00
- 哲学 なんで法王、大司教、坊さんらは皆キンキラキンばっかなん? 4 2022/04/23 18:28
- 画像編集・動画編集・音楽編集 pixel7proで撮った動画をPCで再生すると色が悪い 2 2023/02/28 18:32
- Google Drive Googledriveについて。iphoneの写真や動画をGoogle photoにバックアップして 3 2023/03/27 16:11
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
createElementで作成した要素を...
-
動的にHTMLコンテンツを吹き出...
-
HTMLタグに複数のクラスを設定...
-
読み込んだQRコードをフォーム...
-
テキストエリア内の一部の文字...
-
Apend前のElementの中のElement
-
removeEventListenerについて
-
getElementByIdの戻り値がnull...
-
Fire Foxでロールオー...
-
検索結果を別フレームに表示したい
-
onclickとonmouseoverを同時に...
-
JavaScriptで、リンクのターゲ...
-
Event.observeで、入れ子divタ...
-
removeAttribute()メソッドで削...
-
javascriptによるスクロールを...
-
jQuery の jqPlotプラグイン
-
クリックで色変更後に既に変更...
-
innerHTMLを使い、書き換えたい
-
変数名をどのようにつけるのが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
javascriptテキストBOX色を元に...
-
読み込んだQRコードをフォーム...
-
createElementで作成した要素を...
-
removeEventListenerについて
-
クリックで色変更後に既に変更...
-
iframe内のリンクが飛ばないの...
-
[急ぎ] videoタグで埋め込んだm...
-
背景色を透明化
-
console.log結果をhtmlで表示し...
-
表示・非表示のスクリプトで、...
-
getElementByIdの戻り値がnull...
-
removeAttribute()メソッドで削...
-
テキストエリア内の一部の文字...
-
タブで開いてさらにタブ内をア...
-
IFRAMEの表示/非表示を切り替え...
-
変数内容をHTML内で表示する方法
-
HTMLタグに複数のクラスを設定...
-
jQueryのアコーディオンメニュ...
-
取得した要素がインライン要素...
おすすめ情報