automatisches abspeichern einer sich täglich neu-generierenden Grafik im Web | Möglich? geschlossen 

Status
Für weitere Antworten geschlossen.

Feinschnitt

Registered +
Registriert
Mai 2008
Beiträge
344
Hallo fsb´ler! :)

Habe ein Problem,...

und zwar geht es um eine sich täglich verändernde Karte von einem Onlinespiel welche sich täglich um 01:00Uhr aktualisiert/neu generiert und welche ich mir jeden Tag abspeichern lassen möchte. :rolleyes:

Bin aber nicht immer jeden Tag online, bzw. vergesse ich manchmal zu speichern. Gibt es eine schlaue Möglichkeit evtl. ein Script zu schreiben welches mir die Grafik täglich auf einem Server abspeichert? :ööm:

Könnte das jemand? Falls sich absolut keine Möglichkeit für die Umsetzung mit dem Server findet, würde auch ein Programm welches diese Arbeit für mich abnimmt reichen.

Würde mich riesig freuen wenn ich hier Hilfe bekommen könnte. :D

@Mods
Weiß nicht genau in welchen Bereich es passt... ggf. verschieben! =thx


Danke und Liebe Grüße :bier1:
 
Hi,
Server gehört ins HowTo - je nachdem, ob dir ein Cronjob mit PHP/Perl reicht ins PHP/Perl-Forum oder Eigener Server oder Coding :D

@topic:
Würde dir zum Cronjob raten [Falls dein Server das unterstützt] das ganze dann mit einer PHP-Datei verbunden, die in etwa so aussieht
Code:
 $im = file_get_contents('http://ziel.de/bild.png') OR die('Konnte keine Verbindung zu ziel.de aufbauen');
$fh = fopen('./images/'.date('Y_m_d').'.png','w');
fwrite($fh,$im);
fclose($fh);
echo 'Alles Schick!';
?>
Das dürfte reichen.

Natürlich sollte die Option allow_url_fopen in der php.ini auf 1 stehen ;)

Gruß
Broken Sword
 
Zuletzt bearbeitet von einem Moderator:
Einen wunderschönen guten Morgen Broken!

Danke für die schnelle Antwort ;)

Bin leider ein abs. Laie was das programmieren angeht. Deutsch, Englisch und ein bisschen HTML... da hören meine Kenntnisse aber schon auf...

wäre es möglich einen kostenlosen Server zu finden bei dem ich mit eurer Hilfe dies alles einstelle? Würde mich alles sehr interessieren.

LG
 
Zuletzt bearbeitet von einem Moderator:
so server steht... sieht ganz gut aus. ist das ganze was ich dann erstellen muss eine einzige php-Datei mit dem von dir oben geschriebenen Inhalt oder kommt da noch etwas hinzu?
 
Pack das Script rein (habe es verändert) und erstelle einen Ordner "images" mit den Rechten (CHMOD) 777

Dann bei dem Cronjob-Service anmelden, Domain akzeptieren lassen, Cronjob erstellen und es sollte laufen ^^
 
Wie oder wo melde ich mich denn bei diesem Cronjob Service an??? Steh bissle aufm Schlauch ;)

hier, so siehts aus im kontrollzentrum: http://img3.imagebanana.com/img/zk3u6int/manage.png

Danke für die PN!

Also ich hab jetzt bei Free cron jobs on demand mich angemeldet und möchte die URL hinzufügen aber er sagt mir:
Only domains and subdomains are accepted

Die URL sieht so aus:
PHP:
http://feinschnitt.freevar.com/datei.php


edit:
lösung:
musste doch nur die domain eingeben ohne feinschnitt.php

edit2

dann hab ich die bestätigungs .txt mit der Nummer erstellt und überprüfen lassen. Hat geklappt.

Nun in den Einstellungen von OCJ den Ort zur .php angegeben. Und eine Zeit eingestellt wann der Job ausgeführt werden soll. Hab direkt mal 21:30 genommen wobei die Zeit nicht die war die wir aktuell haben. Muss mal nachschauen ob man das nicht iwo einstellen kann.

Aber warum muss ich da in den Settings bei Onlinecronjobs nochmal einstellen wann der job ausgeführt werden soll? Steht das nicht schon on der php drin? Naja... newbie halt ^^

Grad abgewartet und siehe da, ....... ES KLAAAAAAPT :hit::tata::drum:

Servus nochmal :)

Problem ist, dass die Grafik die sich eig jeden Tag erneuern soll, immer die gleiche ist.

Woran kann das liegen?
 
Zuletzt bearbeitet von einem Moderator:
Hi,
ändert sich denn jeden Tag auch der Name der Datei?

Gruß
Broken Sword

btw. Doppelpost sind so nicht gestattet => Regeln lesen!
 
Zuletzt bearbeitet von einem Moderator:
Nein der Name der Grafik bleibt jeden Tag der gleiche

Aber kann es sein dass wenn ich im Menü der Karte bin und dort auf "Anzeigen" klicke er mir erst die Karte generiert? Aber wäre auch komisch da wenn ich die Karte in anderen Foren reinhaue img.grafikurl.img wird sie auch immer aktuell gehalten. Bille komisch neh?
 
Musst du dich denn einloggen, damit du die Karte sehen willst?
Es kann auch sein, dass deine Session (Cookie) benötigt wird.

Gruß
Broken Sword
 
Hmmm... also es kann auch sein, dass der Webhoster die Datei zwischenspeichert, damit mehrmaliges Abrufen von ein und der selben Datei nicht so viel Traffic kostet.
Ist es denn jetzt immer noch die Grafik vom ersten Tag? Dann einfach mal in der ersten Zeile das ersetzen
Code:
file_get_contents('http://ziel.de/bild.png?'.time())

Gruß
Broken Sword
 
Also ich hatte es 3 Tage laufen lassen und hatte 3 mal die gleiche Grafik aufm Server. Bin dann auf die Seite gegangen wo man die Karte generieren kann und hab nochmal auf "Anzeigen" geklickt was man auch immer machen muss.

Kannste dir ja mal angucken:

dsReal Weltkarte

Naja und als er die aktualisiert hatte war sie am nächsten Tag auch aufm Server wieder aktuell. Ich Frage mich nur wieso ich die in Grafik in verschiedenen Boards packen kann und die User dort immer eine aktuelle Karte sehen.


Was bewirkt denn der Code oben?

edit: mit dem zwischenspeichern kann natürlich sein,... einfach mal das von oben einfügen und gucken was passiert gell .. ^^
 
Zuletzt bearbeitet von einem Moderator:
Okay, also hängt es nicht mit dem Server zusammen (kannst du meinen letzten Post ignorieren)

Jedoch frage ich mich, woher du die Karten-URL hast - ich habe nur das hier gefunden:
Code:
http://www.dsreal.de/showMap.php?id=55711&key=8007288e00179926d448870f63f5bcdd&time=1287309588
Sprich eine PHP-Datei, die das Bild generiert. Das, was du da hast, ist dann wahrscheinlich nur der Cache des Bildes.

Sprich ändere deine PHP-Datei mal in
Code:
 $im = file_get_contents('http://www.dsreal.de/showMap.php?id=55711&key=8007288e00179926d448870f63f5bcdd&time='.time()) OR die('Konnte keine Verbindung zu dsreal.de aufbauen');
$fh = fopen('./images/'.date('Y_m_d').'.png','w');
fwrite($fh,$im);
fclose($fh);
echo 'Alles Schick!';
?>

Das sollte dann auch klappen.

Gruß
Broken Sword
 
Jop - in deren PHP-Datei fehlt die Header-Angabe. Speicher den Text, der dir angezeigt wird, als PNG-Datei und du siehst die Karte ;)

Gruß
Broken Sword
 
Stimmt, uff.... erledigt ja das Script auch automatisch. Ok sieht gut aus bis jetzt. Heißt paar Tage warten und dann sehen wir das Ergebnis. Hatte schon zum Test versucht nen zweiten Cronjob zu legen aber irgendwie hat es nicht geklappt. Hatte ein zweites abgeändertes Script hoch geladen. Nen neuen Cronjob erstellt, Pfad alles stimmte,... auch nen images2 Ordner hatte ich erstellt und diesen in der .php abgeändert. Will aber nix speichern.

Und noch was,... Die Zeit in der Umbenannt wird. Die Zeit der .png File kann ich auch ne Uhrzeit dran hängen... ich glaub es war 'Y_m_d_-_H_i' right?
 
1. Nein hatte ich jetzt nicht dran gedacht, aber danke für die Idee...#

2. Du machst mich neugierig!

3. Bist ein echter Freund und ein Klasse Mod! :D

edit:

Alles anklicken bei Rechte?

Owner: Read [] Write [] Execute []
Group: Read [] Write [] Execute []
Everyone: Read [] Write [] Execute []

Chmod value [dreistellige Zahl]
 
Zuletzt bearbeitet von einem Moderator:
3. He he... Jeder wird vergessen, nur an die Helfenden wird man sich erinnern :D

1. Richtig, wie oben - 777

Gruß
Broken Sword
 
Ich hab jetzt den hier genommen: eu5org

Irgendwelche bedenken?

edit:

habs soweit wieder eingerichtet bekommen.

Sehr einfach wenn man es schon mal gemacht hat. ^^

Danke für die Hilfe, ... hoffe der freevar kommt noch mal on und ich kann meine Karten downloaden :D

edit2:

Wenn ich den Dateinamen mit Datum und Uhrzeit definiere (Y.m.d_-_H:i) = (2010.10.26_-_09:46) wird aber eine andere Zeit ausgegeben als hier in Deutschland ist [16:45Uhr].

Ich schau am besten mal, ob man eine Zeit vergeben kann die einer Zeitzone zugehört.

Hast mir doch da die php Hilfeseite gegeben. ;)
 
Zuletzt bearbeitet von einem Moderator:
Hi,
also das kannst du am einfachsten machen, indem du den Timestamp änderst:
Code:
date('Y_m_d',time()+(60*60*7))

Gruß
Broken Sword
 
klappt, ...sehr gut sogar!

aber wie hast du den Code aus der Karte genommen? würde das gerne in Zukunft selber können und nicht hier jedes mal für jede Karte nach dem Code fragen ;)

edit:

also ich mein den code der nicht nur der cache ist ;)

LG
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben Unten