Seite 1 von 1

Dynamische Signatur

Verfasst: 17.04.2006 15:56
von Silke Buthmann
Dies habe ich im Netz gefunden, es soll dadurch eine dynamische Signatur angezeigt werden. Z.B. wie alt ist der Benutzer oder wielange noch bis zum Geburtstag.

Code: Alles auswählen

<? 

//Zeitdifferenz zwischen Datum und jetzt berechnen und das notwendigen Array erzeugen!

function timediff($time) { 
    $temp=$time; 
    if(date("L")==1) { 
        $schalt=366; 
    } else { 
        $schalt=365; 
    }      
    $jahre=floor($temp/(60*60*24*$schalt)); 
    $temp=$temp-($jahre*60*60*24*$schalt); 
    $monate=floor($temp/(60*60*24*30.5)); 
    $temp=$temp-($monate*60*60*24*30.5); 
    $temp=round($temp); 
    $tage=floor($temp/(60*60*24)); 
    $temp=$temp-($tage*60*60*24); 
    $stunden=floor($temp/(60*60)); 
    $temp=$temp-($stunden*60*60); 
    $minuten=floor($temp/60); 
    $temp=$temp-($minuten*60); 
    $sekunden=$temp; 
    return array($jahre, $monate, $tage, $stunden, $minuten, $sekunden); 
} 

$jetzt=time(); 
$birthday=mktime(6, 52, 0, 11, 3, 2004); 
$differenz=$jetzt-$birthday;
$zeit=timediff($differenz); 

//Position in Tagen im Bild berechnen
$tage = floor($differenz / (60*60*24));
$anzeige = floor((($tage/365)*$width)-10);

//Bild definieren und Farben erzeugen (transparenter BG)

$width = xxx;  
$height = xxx; 
$img = imagecreatetruecolor($width, $height);
$white = ImageColorAllocate($img, 255, 255, 255);
$black = ImageColorAllocate($img, 0, 0, 0);
imagecolortransparent ($img, $white);
ImageFill($img, 0, 0, $white); 

//Hauptbildabmessungen ermitteln
$sourcefile_id = $img; 
$sourcefile_width=imageSX($sourcefile_id); 
$sourcefile_height=imageSY($sourcefile_id); 

//Backgroundbild laden und Größe ermitteln, danach einkopieren ... 
$insertfile_id = ImageCreateFromGIF("background.gif"); 
$insertfile_width=imageSX($insertfile_id); 
$insertfile_height=imageSY($insertfile_id); 
imageCopyMerge($sourcefile_id, $insertfile_id,0,0,0,0,$insertfile_width,$insertfile_height,100);

//Zeiger laden, Größe ermitteln und abhängig vom Alter einfügen ...
$insertfile_id = ImageCreateFromGIF("schieber.gif"); 
$insertfile_width=imageSX($insertfile_id); 
$insertfile_height=imageSY($insertfile_id);
imageCopyMerge($sourcefile_id, $insertfile_id, $anzeige,50,0,0,$insertfile_width,$insertfile_height,100);

ImageTTFText ($img, 18, 0, 5, 110, $black, "/usr/local/gdfonts/schriftart.ttf", 'Text bla bla' . $zeit[1] . ' Monate ' . $zeit[2] . ' Tage ' .  $zeit[3] . ' Std. und ' . $zeit[4] . ' Min. und so weiter');

//Bild ausgeben und danach wechtöten
ImageGIF($img,'ticker.gif'); 
ImageDestroy($img) 
?>
Meine Signatur soll ca 500x50 werden und im oberen Bereich soll das Schieber.gif zu sehen sein, im unteren der Text.

Nun meine Frage:
  • Was zählt der Ticker gerade? Wieviel Zeit schon vergangen ist oder wielange noch?
    Welche Bereiche muß ich für den Schieber z.B. ändern?
    Was ist bei den zuerstellenden Gifs zu beachten?
    Wenn ich die Datei in die Signatur einbau muß ich durch den [img]-Tag die php oder eins der Gifs aufrufen?
Über jegliche Tips und Hilfe wäre ich euch unheimlich dankbar! :grin:[/img]

Zwar keinen Schimmer, aber vielleicht hilft's ja doch...

Verfasst: 13.06.2006 11:57
von Capricorn
Also ich hab jetzt nicht viel Ahnung von PHP und kann jetzt nicht sagen, ob das Script so funktioniert. Aber rein aus der Formel heraus gelesen würde ich sagen:

Wenn das Geburtsdatum länger zurück liegt als das heutige Datum, zählt das Script wie viel Zeit vergangen ist. Liegt das Datum noch in der Zukunft, würde mir mein Tabellenkalkulationsprogramm jetzt ein Minus angeben. Also vielleicht in der Art eines Countdown -xxx. Also in dem Fall der hier angegeben ist (11.03.2004) würde das Script sagen, wie lange der Termin her ist (da: jetzt-birthday).

Okay, das hätte jetzt wahrscheinlich hier jeder überprüfen und sagen können. Aber wie ich schon sagte: ich habe keine Ahnung von PHP und suche selber nur nach so einem Ticker. Vielleicht erbarmt sich ja jemand und hilft mir auf die Sprünge. ;)