ループ処理された中でfile_existsによる画像サイズが取得できま
ループ処理された中でfile_existsによる画像サイズが取得できません。
ループlist関数で変数代入しDisp_Img_Tag_02関数へ引数を渡した場合に引数側へ変数は渡っていることは確認しているのですが、問題解決に至りません。コードの問題指摘と解決方法をアドバイスください。
ログファイル/ 1,ばなな,黄色いくだものです,1278105473-01.jpg
<?php
$logfile = "./db.csv"; //ログデータ
$array_log = file($logfile);
for($i=0; $i<count($array_log); $i++){
list($code,$text_01,$area_01,$img_01_Filename) = split(",", $array_log[$i]);
echo Disp_Img_Tag_02("1278105473-01.jpg")."<br>"; //(1)直接ファイルを指定
echo Disp_Img_Tag_02("$img_01_Filename")."<br>"; //(2)***ここが問題です。
}
echo "<br><br>";
$img_01_Filename = "1278105473-01.jpg";
echo Disp_Img_Tag_02("1278105473-01.jpg")."<br>"; //確認用OK
echo Disp_Img_Tag_02("$img_01_Filename")."<br>"; //確認用OK
function Disp_Img_Tag_02($img_name, $type) {
$path = realpath( "." )."/img/"; //アップロード画像パス
$up_dir = '/img/'; //画像リンク先パス
$w_admin_max = 30; //管理用サイズ
$h_admin_max = 30;
$w_user_max = 100; //ユーザー用サイズ
$h_user_max = 100;
$img_tag = "";
if($img_name && file_exists("$path$img_name")){
list($width, $height, $dummy01, $dummy02 ) = getimagesize("$path$img_name");
if($width > $w_admin_max || $height > $h_admin_max){
$w_rate = $w_admin_max / $width;
$h_rate = $h_admin_max / $height;
($w_rate < $h_rate) ? $key = $w_rate : $key = $h_rate;
$width = (int) $width * $key;
$height = (int) $height * $key;
$img_tag = $img_tag."<a href=.$up_dir$img_name target=_blank><img src=.$up_dir$img_name width=" . $width . " height=" . $height . " border=0></a>\n";
}else{
$img_tag = $img_tag."<img src=.$up_dir/$img_name border=0>\n";
}
$img_tag = $img_tag."<input type=hidden name=fname01 value=\"$img_name\"><input type=checkbox name=fname01_del value=1>削除\n";
$img_tag = $img_tag." 上書:<input type=file name=upfile01 size=15>\n";
}else{
$img_tag = $img_tag."登録 <input type=file name=upfile01 size=20> 確認用ファイル名 $img_name\n";
}
return $img_tag;
}
?>
お礼
metametamuさん、回答頂き誠にありがとうございます! dreamwaverでimgにwidthなどをつけていない場合、 その画像のサイズが変更になった時、なぜか新しいサイズで表示されなかったんです。。 私も属性を指定しなしなければ、問題解決!と思っていたのですが、なぜか前のサイズが保持されてしまうんですよね。。 でも、ご回答頂き本当にありがとうございました。