Homepage selbermachen 7.851 Themen, 35.615 Beiträge

PHP Funktion bilder erzeugen, traffic sparen: nur einmal thu

T E S T E R / 20 Antworten / Flachansicht Nickles



function pic($bild,$id,$ordner) {
$PicPathIn="$ordner/";
$PicPathOut="out/";
$size=getimagesize("$PicPathIn"."$bild");
$breite=$size[0];
$hoehe=$size[1];
$neueBreite=53;
$neueHoehe=$hoehe*$neueBreite/$breite;
$size[2]==2;
$altesBild=ImageCreateFromJPEG("$PicPathIn"."$bild");
$neuesBild=imageCreate($neueBreite,$neueHoehe);
imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
ImageJPEG($neuesBild,"$PicPathOut"."$ordner"."TN"."$bild");
$Thumbnail=$PicPathOut."$ordner"."TN".$bild;

echo "<a href=\\"photo.php?id=$id&option=pic_show&picid=$bild&height=$hoehe&width=$breite\\">
<IMG SRC=\\"$Thumbnail\\" WIDTH=\\"$neueBreite\\" HEIGHT=\\"$neueHoehe\\"></a> ";
}


ich hab hier eine funktion, mittels welcher ich bilder erzeugen lasse, die aus einer db gelesen werden, bzw. die
pfade zu den bildern werden aus einer db gelesen. ok....ich befürchte, dass, wenn jedesmal von neuem ein thumbnail von
circa 2kb erzeugt wird, irgendwann mein provider meckert, daher will ich die thumbnails genau einmal erstellenl assen,
dann aber nur noch auf die bereits erstellten zurückgreifen, ich dachte das geht mit file_exists also:
if(file_exists...... aber das geht nicht. weiss jemand einen tipp wie ich prüfen kann, ob die datei schon vorhanden ist
und dann in diesem falle die datei nicht nochmal erzeugt wird, oder wird die datei garnicht nochmal gelöscht und von php
nochmal erzeugt, wenn ein 2. und 3. usw. user auf die bilder zugreifen?
bei Antwort benachrichtigen
xafford T E S T E R „PHP Funktion bilder erzeugen, traffic sparen: nur einmal thu“
Optionen

file_exists sollte eigentlich funktionieren, wenn du probleme damit hast, dann teste mal auf gleichheit des typs:
if(file_exists("filepath")===true)
oder mache eine negierende prüfung:
if(!file_exists("filepath"))
wenn alle stricke reißen, dann nutze die funktion @imagecreatefromjpeg() und teste diese auf true oder false.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
*plonk* Zaphod
*plonk* T E S T E R
Die Lösung Heinz_Malcher