画像投稿がない場合、特定画像を表示させたい
画像投稿型BBSを改造しています。
画像を投稿すると、画像名をlinux時間に変換し、1296913178.jpgとして保管します。
一方、CSVファイルにも1296913178.jpgという名を記載します。
【困りごと】
画像投稿が前提とされているため、画像投稿がなかった場合CSVファイルへの記載
が空欄となるため<img src="./data/> となってしまい見た目がよくありません。
【改造したいこと。】
デフォルトで j.jpg という画像を置き、新規投稿時に、画像名がある場合は
<img src="./data/j.jpg1296913178.jpg> となり、
画像がない時は、<img src="./data/j.jpg> となるように改造したいと考えています。
【今までに出来たこと】
下記のソースの一番下をj.jpg$attachに変更することにより、CSVファイルへの書き込み
については j.jpg1296913178.jpg というものを作ることができました。
【出来ないこと(真の困りごと】
画像名をlinux時間に変換し、1296913178.jpgとして保管していますが、
これをj.jpg1296913178.jpgとして保管するようにすることができません。下記をテスト
しましたが駄目でした。
if (!$original || !$filename) $filename = j.jpg$now.".".$ext;
if (!$original || !$filename) $filename = j.jpg+$now.".".$ext;
.htaccessでも結構です。対応アドバイスをお願いします。
【ソース】
// ファイル名を抽出
if (eregi("name=\"?([^\"\n]+)\"?",$m_head, $filereg)) {
$filename = ereg_replace("[\t\r\n]", "", $filereg[1]);
while (eregi("(.*)=\?iso-2022-jp\?B\?([^\?]+)\?=(.*)",$filename,$regs)) {
$filename = $regs[1].base64_decode($regs[2]).$regs[3];
$filename = convert($filename);
}
$ext = substr($filename,strrpos($filename,".")+1,strlen($filename)-strrpos($filename,"."));
}
// 添付データをデコードして保存
if (eregi("\nContent-Transfer-Encoding:.*base64", $m_head) && eregi($subtype, $sub)) {
$tmp = base64_decode($m_body);
if (!$ext) $ext = $sub;
if (!$original || !$filename) $filename = j.jpg+$now.".".$ext;
if (strlen($tmp) < $maxbyte && !eregi($viri, $filename) && $write) {
$fp = fopen($tmpdir.$filename, "w");
fputs($fp, $tmp);
fclose($fp);
$attach = $filename;
} else {
$write = false;
}
}
}
if ($imgonly && $attach=="") $write = false;
list($old,$otime,$osubj,$ofrom,,) = explode("<>", $lines[0]);
// 連続投稿
if ($from == $ofrom && $now - $otime < $wtime) $write = false;
$id = $old + 1;
$subject = trim
if($subject=="") $subject = $nosubject;
$line = "$id<>$now<>$subject<>$from<>$text<>j.jpg$attach<>\n
お礼
回答ありがとうございます。 おっしゃる通り何かと色々ありそうなので、 画像名はIDとは別の値にする形で考えることにしました。 ありがとうございました。