• Willkommen im Forum „Wetterstationsforum.info - Archiv“.
 

Neuigkeiten:

Dieses Forum dient ausschließlich zu Archivzwecken.
Für Fragen nutze bitte unser aktuelles Forum, welches du unter https://wetterstationsforum.info findest.

Hauptmenü

PHP Problem "imagecreate" / "imagecopy"

Begonnen von Wetterfrosch1971, 12.08.2017, 11:50:12

⏪ vorheriges - nächstes ⏩

Wetterfrosch1971

Hallo,

ich stehe mal wieder vor für mich unlösbarem PHP-Problem.

Ich habe auf meiner Homepage ein "Wetterwidget" gebastelt, das ihr im angehängten Bild sehen könnt.

Zur Erklärung:
Mit PHP und "imagecreate" / "imagecopy" hatte ich dieses Widget zusammengebastelt, das aus einem schwarzen rechteckigen Grundbild und insgesamt 4 übereinanderliegenden Einzelbilder besteht (blaue Überschrift, Messwerte, Wettersymbol und Luftdrucktrendsymbol).

Das alles funktionierte nun über 1 Jahr und jetzt auf einmal wird das Widget nur noch als schwarzes Rechteck angezeigt, d.h. es wird nur noch das schwarze Grundbild angezeigt, in das ich mit dem PHP-Befehl "imagecopy"  die 4 Einzelbilder einfüge.
Augenscheinlich funktioniert da irgendwas mit "imagecopy" nicht mehr.

UPDATE:

Komisch, jetzt plötzlich ca. 1h nach dem ich das Problem festgestellt hatte, funktioniert das Widget wieder, lag wohl irgendwie an meinem Webspace.


Vielen Dank für eure Hilfe
Gruß Frank

charly

Hallo

ich sehe bei dir auch nur das schwarze Rechteck.
http://wetteruerdingen.de
http://wetter-uerdingen.de
WH-4000 Raspberry Pi 3 - S.USV pi advanced / Weewx + Weewxwd integration

Wetterfrosch1971

Mist, jetzt funktioniert es wieder nicht mehr, an was könnte denn das liegen?

anbei mal mein PHP-Code


<?php// Header setztenheader('Content-type: image/png'); // Bilder laden$imgzeichen = imagecreatefrompng("http://wetterstation-badenweiler.de/hw/hw.php"); $imgzeichen1 = imagecreatefrompng("http://wetterstation-badenweiler.de/hw/banner1.png"); $imgzeichen2 = imagecreatefrompng("http://wetterstation-badenweiler.de/metar/conditions.php");$imgzeichen3 = imagecreatefrompng("http://wetterstation-badenweiler.de/metar/conditions-trend.php");// schwarzes Grund-Bild erzeugen$img = imagecreatetruecolor(184, 104); // Bilder in Grundbild einfügenimagecopy($img, $imgzeichen, 2, 24, 0, 0, 180, 78); imagecopy($img, $imgzeichen1, 2, 2, 0, 0, 180, 20); imagecopy($img, $imgzeichen2, 100, 24, 0, 0, 80, 62);imagecopy($img, $imgzeichen3, 76, 49, 0, 0, 10, 10);// Bild anzeigenimagepng($img); // Speicher freigebenimagedestroy($img);?>



Hier noch der Link zum Ordner in dem das Widget liegt:
www.wetterstation-badenweiler.de/hw/hw1.php

Gruß Frank

charly

#3
ich schau mir das mal an..

Beiträge zusammengeführt, weil der Autor sich selbst geantwortet hat statt seinen letzten Beitrag zu ändern: 12.08.2017, 18:51:16

Zitat von: charly am 12.08.2017, 18:43:40
ich schau mir das mal an..
kanste mir mal die dazugehörigen dateien mal geben..

cu. charly
http://wetteruerdingen.de
http://wetter-uerdingen.de
WH-4000 Raspberry Pi 3 - S.USV pi advanced / Weewx + Weewxwd integration

Wetterfrosch1971

#4
welche Dateien meinst du?

Die 4 Bilddateien die ich in das Grundbild mittels imagecopy einbaue?
Diese kannst du direkt mit dem entsprechenden Link aus dem Code aufrufen.

Ups, jetzt geht es wieder, Mensch ist das komisch, gugst du:
www.wetterstation-badenweiler.de/hw/hw1.php

Ich glaube ich muss den Fehler augenscheinlich bei meinem Webspace suchen, denn wenn es nicht geht, ist die Ladezeit auch extrem lang und wenn es geht, ist diese kurz, d.h. irgendwas muss da wohl beim Webspace schief laufen, vermute ich zumindest.

Gruß Frank

charly

Zitat von: Wetterfrosch1971 am 12.08.2017, 19:00:39
welche Dateien meinst du?

Die 4 Bilddateien die ich in das Grundbild mittels imagecopy einbaue?
Diese kannst du direkt mit dem entsprechenden Link aus dem Code aufrufen.

Ups, jetzt geht es wieder, Mensch ist das komisch, gugst du:
www.wetterstation-badenweiler.de/hw/hw1.php

Gruß Frank
Hmm komisch , wer weis was da los ist
http://wetteruerdingen.de
http://wetter-uerdingen.de
WH-4000 Raspberry Pi 3 - S.USV pi advanced / Weewx + Weewxwd integration

Wetterfrosch1971

Heute morgen war ja auch ein "Serverausfall" bei Awekas, doch wie dort im Forum zu erfahren war, lag das Problem wohl auch beim Webspaceanbieter (word4you).
Ich bin zwar nicht bei diesem Webspaceanbieter, doch vielleicht liegt hier ja irgend ein "globaleres" Problem zu Grunde.
Ich habe meinen Webspaceanbieter mal angeschrieben, mal sehen was für eine Antwort ich bekomme.
So lange heißt es wohl abwarten und Tee trinken, denn augenscheinlich liegt mein Problem ja nicht an meinem Script, sondern eher wohl auf Seiten des Webspaces.

Danke trotzdem für deine Bemühungen.
Gruß frank

falk

Hallo Frank,

ich kenne nicht deinen ganzen PHP-Code. Was ich hier aber sehe lässt sich an vielen Stellen optimieren. Das vermindert die Last bei deinem Webspaceprovider und erhöht die Stabilität deines Internetauftritts.

Ganz konkret könntest du dynamische Ressourcen, wie dein Wetterwidget, auch für kurze Zeit zwischenspeichern. Das verändert sich ja nicht mit jedem Aufruf. Lokale Ressourcen musst du nicht immer mit voller URL holen. Das Image "banner1.png" lässt sich auch als Datei einbinden...

Mach dich mal schlau in Richtung Code-Optimierung, Refactoring. Du wirst erstaunt sein, was du hier noch an Geschwindigkeit und Stabilität erreichen kannst, auch wenn sich die Funktionalität nicht ändert.

Gruß
Falk

Viele Grüße
Michael

Wetterfrosch1971

Hallo Falk,

leider bin ich programmiertechnisch eine Null, bin froh das ich das Widget so irgendwie zusammengebastelt bekommen habe.

Du hast jedoch recht, ändert tuen sich nur die Messwerte (sind die Messwerte aus meiner Realtime.txt, d.h. alle Minute werden neue Messwerte übermittelt) sowie das Wetterzustandssymbol (Änderung 1x pro Stunde).

Kannst du mir einen groben Tipp geben wie ich z.B. das Banner als Datei einbinden kann?

Danke.
Gruß Frank

falk

Zitat von: Wetterfrosch1971 am 14.08.2017, 12:13:50
leider bin ich programmiertechnisch eine Null, bin froh das ich das Widget so irgendwie zusammengebastelt bekommen habe.

Damit bist du schon einmal keine Null  ;)

Zitat
Kannst du mir einen groben Tipp geben wie ich z.B. das Banner als Datei einbinden kann?

http://us1.php.net/manual/de/function.imagecreatefrompng.php

Kurz mein Caching-Vorschlag als Pseudocode


$zeit = aktuelle Zeit - 1 Minute
$widgetDatei = Widget-Datei (Zwischenspeicher)

Falls $widgetDatei nicht existiert oder Modifikationsdatum($widgetDatei ) < $zeit, dann
   $widget= Erzeuge neues Widget
   Schreibe($widget, $widgetDatei)
sonst
   Lese($widget, $widgetDatei)

Übergebe $widget