21.06.03, 14:20
|
#1 (permalink)
|
Registriert seit: Aug 2002
Beiträge: 419
Renommee-Modifikator: 17
|
Bild mit dynamischen Daten generieren - aber wie?
Moin Moin,
hier im Forum sieht man oft leute mit "dynamischen Bannern" da steht dann z.B. " Noch 7:30 Stunden bis GSZS" oder " Du bist besucher nr 73" etc.
Wie kann man sowas machen?
|
21.06.03, 14:30
|
#2 (permalink)
|
Registriert seit: Feb 2002
Beiträge: 144
Renommee-Modifikator: 17
|
such mal nach gd lib
im tutorials bereich gibt es mein ich sogar ein tutorial zu den image funktionen der gd lib.
|
21.06.03, 14:55
|
#3 (permalink)
|
Registriert seit: Apr 2001
Ort: Hamburg
Beiträge: 1.309
Renommee-Modifikator: 24
|
-
|
PHP-Code:
|
|
header("Content-type: image/png");
set_time_limit(0);
function swap($var)
{
$var = str_replace("Ö", "Ö", $var);
$var = str_replace("Ä", "Ä", $var);
$var = str_replace("Ü", "Ü", $var);
$var = str_replace("ü", "ü", $var);
$var = str_replace("ö", "ö", $var);
$var = str_replace("ä", "ä", $var);
$var = str_replace("&","&", $var);
$var = str_replace(""","\"", $var);
$var = str_replace("<", "<", $var);
$var = str_replace(">", ">", $var);
return $var;
}
$monat = date("n", time());
$tag = date("d", time());
$gzsz = mktime(19,40,0,$monat,$tag,2002);
$stunden = date("G", $gzsz) - date("G", time());
$minuten = date("i", $gzsz) - date("i", time());
if( $stunden < 0)
{
$stunden+=24;
}
if( $minuten < 0 )
{
$minuten+=60;
$stunden--;
}
if( $stunden == 1)
$h = "Stunde";
else
$h = "Stunden";
if( $minuten == 1)
$m = "Minute";
else
$m = "Minuten";
// ----------------------------- Anfang tut.de ----------------------------
$url = $HTTP_REFERER;
$byte = fopen($url, "r");
$tech = array();
$zahl = 0;
while( !feof($byte) )
{
$tech[$zahl] = fgets($byte, 1024);
if( preg_match_all("=<title>(.*)</title>=siU", $tech[$zahl], $title) )
break;
$zahl++;
}
// ----------------------------- Ende tut.de --------------------------------
// ------------------------------ Anfang heise.de ---------------------------
$byte1 = fopen("http://www.heise.de/newsticker", "r");
$tech1 = array();
$zahl1 = 0;
$flag = false;
while( ! feof($byte1) )
{
$tech1[$zahl1] = fgets($byte1, 1024);
$date = date("d.m.Y", time());
if( preg_match_all("=<b>$date(.*)</a>=siU", $tech1[$zahl1], $news) )
{
$flag = true;
break;
}
$zahl1++;
}
$string = $news[1][0]."</a>";
$found = substr($string, strpos($string, "<A"));
preg_match_all("=<A HREF[^>]*>(.*)</a>=siU", $found, $news2);
// --------------------------------- Ende heise.de --------------------------
$thread = substr($title[1][0],strpos($title[1][0],"-")+2);
$thread = swap($thread);
$news2[1][0] = swap($news2[1][0]);
if( ! $flag )
$news2[1][0] = "Bisher gibt es noch keine News von heise.de !";
// --------------------------------- Counter ----------------------------------
$counter1 = file("counter.txt");
$counter1[0]++;
$datei = fopen("counter.txt", "w+");
flock( $datei, LOCK_EX);
fwrite($datei, $counter1[0]);
flock($datei, LOCK_UN);
fclose($datei);
$counter = file("counter.txt");
// -------------------------------- Bildausgabe -----------------------------
$hoehe = 100;
$breite = 700;
$image = imagecreate( $breite, $hoehe );
$weiss = imagecolorallocate( $image, 255,255,255);
$black = imagecolorallocate( $image, 0,0,0);
$fontsize = 9;
$font = "";
$text = "Deine IP ist ".$REMOTE_ADDR." ----- Diese Signatur wurde bisher ".$counter[0]." mal aufgerufen.\r\n";
$text .= "Es sind noch ".$stunden." ".$h." und ".$minuten." ".$m." bis zur nächsten Folge \"Gute Zeiten, Schlechte Zeiten\", ";
$text .= "außer wir haben WE/Feiertag.\r\n";
$text .= "\r\n";
$text .= "Du liest gerade im Thread: ".$thread."\r\n";
$text .= "Die neueste Heise Nachricht: ".$news2[1][0]."\r\n";
imagettftext( $image, $fontsize, 0, 1, 13 , $black, $font, $text);
imagecolortransparent( $image, $weiss );
imagepng($image);
?>
|
Das hatte ich damals für meine GZSZ Signatur benutzt. Musst mal schaun, was du daraus gebrauchen kannst.
__________________
--
GNU/Linux - Weil man echte Freunde nicht kaufen kann
|
02.07.03, 14:48
|
#4 (permalink)
|
Registriert seit: Apr 2002
Ort: keine Angaben
Beiträge: 590
Renommee-Modifikator: 19
|
Könnt ihr mir feof erklären? Die Funktion versteh ich nicht und im Manual http://de3.php.net/feof steig ich nicht durch.
//edit
if( preg_match_all("=<b>$date (.*)</a>= siU", $tech1[$zahl1], $news) )
Die beiden roten Teile versteh ich ebenfalls nicht richtig. ist (.*) für alles, was dazwischen ist? Oder was muss ich darunter verstehen?
Und was ist siU?
Geändert von Sway (02.07.03 um 15:02 Uhr).
|
02.07.03, 15:36
|
#5 (permalink)
|
|
Mitglied Diamant
Registriert seit: Dec 2001
Ort: Romanshorn (Schweiz)
Beiträge: 3.131
|
feof() wird eigentlich nur verwendet, um zu überprüfen, ob sich der Dateizeiger schon am Ende der Datei befindet: if(!feof("datei.txt")) oder so ähnlich. Die Funktion gibt afaik entweder true oder false zurück.
|
09.07.03, 12:32
|
#6 (permalink)
|
|
Mitglied Bronze
Registriert seit: May 2003
Ort: Hamburg
Beiträge: 41
Renommee-Modifikator: 14
|
Und wie fügt man sowas dann hier in die Signatur ein?
|
09.07.03, 12:44
|
#7 (permalink)
|
Registriert seit: Apr 2002
Ort: keine Angaben
Beiträge: 590
Renommee-Modifikator: 19
|
[*img]http://www.deine-seite.de/bild.php[/img]
Ohne das * natürlich
Geändert von Sway (09.07.03 um 12:57 Uhr).
|
09.07.03, 12:52
|
#8 (permalink)
|
|
Mitglied Bronze
Registriert seit: May 2003
Ort: Hamburg
Beiträge: 41
Renommee-Modifikator: 14
|
und am ende [/url] oder meinst du [/img]
funktioniert das so auch, wenn in dem php script nur text ausgegeben wird und kein bild?
|
09.07.03, 12:55
|
#9 (permalink)
|
Registriert seit: Apr 2002
Ort: keine Angaben
Beiträge: 590
Renommee-Modifikator: 19
|
ahhh, man sollte nie 2 sachen gleichzeitig machen... mein fehler
[*img]http://www.deine-seite.de/bild.php[/img]
Und es funktioniert nur mit dem Bild. In Header vom PHP script steht ja, das es ein bild ist.
|
09.07.03, 13:10
|
#10 (permalink)
|
|
Mitglied Bronze
Registriert seit: May 2003
Ort: Hamburg
Beiträge: 41
Renommee-Modifikator: 14
|
Ok, verständlich, aber man kann das doch sicher auch mit einer Textausgabe machen, oder?
Nehmen wir an, ich habe auf meiner Domain ein Script liegen, da steht drin:
|
PHP-Code:
|
|
<?php
echo "ich bin toll ;-)";
?>
|
Kann ich das dann nicht auch in meiner Signatur ausgeben lassen?
|
09.07.03, 13:12
|
#11 (permalink)
|
Registriert seit: Apr 2002
Ort: keine Angaben
Beiträge: 590
Renommee-Modifikator: 19
|
das wird nicht gehen denk ich.
Du fügst zwar ein bild in dein Script ein, aber es wird nicht als Bild behandelt. Schon alleine weil im Header nicht gesagt wird, das es ein JPEG oder PNG ist.
|
09.07.03, 13:55
|
#12 (permalink)
|
|
Mitglied Bronze
Registriert seit: May 2003
Ort: Hamburg
Beiträge: 41
Renommee-Modifikator: 14
|
Ohh, sorry, das war jetzt mein Fehler, da sollte garkein Bild rein, das sollte eigendlich ein Smiley sein...
Machen wirs so:
|
PHP-Code:
|
|
<?php
echo "ich bin toll";
?>
|
Kann man nicht im Header was anderes angeben ausser das es ein Bild ist? Dann geb ich da einfach an, dass es sich um Text handelt...
|
09.07.03, 14:02
|
#13 (permalink)
|
Registriert seit: Feb 2002
Beiträge: 144
Renommee-Modifikator: 17
|
man kann schon etwas anderes im header angeben, aber dann kannst du es garantiert nicht mit [*img][*/img] in deine signatur laden.
es gibt jedoch die möglichkeit das "ich bin toll" in ein bild (evtl. mit transparentem hintergrund) zu schreiben und das dann in die signatur zu laden...
|
09.07.03, 14:06
|
#14 (permalink)
|
|
Mitglied Bronze
Registriert seit: May 2003
Ort: Hamburg
Beiträge: 41
Renommee-Modifikator: 14
|
Hmm, stimmt, das ist auch ne Möglichkeit...
Aber sowas wie [*img] [*/img] für eben das was ich vorhatte, nur text, gibt es nicht, oder? Hab da vieleicht was überlesen
Danke für die schnellen Antworten!
MfG venom
|
09.07.03, 14:58
|
#15 (permalink)
|
Registriert seit: Apr 2001
Ort: Hamburg
Beiträge: 1.309
Renommee-Modifikator: 24
|
-
Man Typ, kannst du bitte die Beiträge der anderen auch mal lesen.
Du kannst mit entsprechendem Header alles senden, was das HTTP Protokoll zulässt, aber was die Signatur angeht, halt nur Bilder.
Und jetzt stell deine Frage bitte nicht auch noch zum vierten Mal.
__________________
--
GNU/Linux - Weil man echte Freunde nicht kaufen kann
|
|