Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Funktionsfähigkeit der GD-Library per PHP testen

  1. #1
    Registrierter Benutzer
    Registriert seit
    24.09.2005
    Beiträge
    48

    Funktionsfähigkeit der GD-Library per PHP testen

    Hallo zusammen,

    ich verarbeite im Frontend einer Webseite viele Bilder per GD-Library on-the-fly weiter und lasse sie darüber anzeigen.
    Klappt seit vielen Jahren auch sehr gut und einwandfrei.
    Nur heute hatte ich einen längeren Ausfall, wo mir die Fehlermeldung "Error. No GD-Library" anstatt dem Bild angezeigt wurde (Provider hat heute eine neue PHP-Version eingespielt, wodurch es zum Ausfall kam).

    Jetzt möchte ich im Backend der Webseite mir eine Testfunktion einbauen.
    Die PHP-Funktion, um Bilder über die GD-Library laufen zu lassen, steht mir dort aber nicht zur Verfügung (oder nur mit großem Aufwand).
    Wollte mir bereits die Funktion ins Backend kopieren und 1 Bild darüber testweise verarbeiten lassen. Sollte die GD-Library im Frontend wieder spinnen, würde mir das Bild im Backend auch nicht angezeigt werden. Geht aber leider nicht, da es dann doch mehrere Änderungen zur Folge hätte, die ich z.Z. nicht machen kann und möchte.

    Darum meine Frage, ob einer von euch eine Idee hat, wie ich mit einem PHP-Befehl die Funktionsfähigkeit der GD-Library testen kann ??
    Gibt es einen PHP-Befehl, mit dem ich o.g. Fehlermeldung erzeugen kann, wenn die GD-Library wieder spinnen sollte?

    Danke und Gruß
    Andreas
    Geändert von AndreasMeier (21-09-2009 um 13:34 Uhr)

  2. #2
    Registrierter Benutzer
    Registriert seit
    18.04.2008
    Beiträge
    59
    Oft reicht es zu überprüfen ob eine Funktion der erforderlichen extension existiert.

    PHP-Code:

    if(!function_exists("gd_info")) {
      
    $error_message 'GD Extension ist nicht installiert.';
      echo 
    $error_message//!< z.B. ausgabe des fehlers
      
    exit;

    function.gd-info.php

  3. #3
    Registrierter Benutzer
    Registriert seit
    24.09.2005
    Beiträge
    48
    D.h. wenn die GD-Library wieder nicht gehen sollte, erhält man durch die Abfrage einen Fehler, weil die Funktion keinen Wert zurück liefert. Dann kommts zur Fehlermeldung.
    Stimmt das so?

  4. #4
    Registrierter Benutzer
    Registriert seit
    18.04.2008
    Beiträge
    59
    hey, ja genau.
    In dem Beispiel wird die Fehlermeldung und mit exit das Skript abgebrochen (zwar nicht der beste Stil mit exit, wäre aber einfache und schnelle Lösung), wenn die GD Lib nicht existiert (
    durch die Abfrage function_exists erhält man als Rückgabewert einen bool
    ).

  5. #5
    Registrierter Benutzer
    Registriert seit
    24.09.2005
    Beiträge
    48
    Hallo Zenobic,

    danke für die Antwort - werds gleich mal testen.

    Danke und Gruß
    Andreas

  6. #6
    Registrierter Benutzer
    Registriert seit
    24.09.2005
    Beiträge
    48
    Jetzt muss ich trotzdem nochmal weiter bohren:

    Ist damit wirklich eine Überprüfung der Funktion gegeben ?
    Während des Ausfalls war per phpinfo die GD-Library trotzdem immer auf enabled. Ne Version etc. wurde auch angezeigt.
    Trotzdem hat die Verarbeitung der Bilder nicht funktioniert.

    Daher die Frage, ob damit wirklich eine Überprüfung der Funktion gegeben ist ?

  7. #7
    Registrierter Benutzer
    Registriert seit
    18.04.2008
    Beiträge
    59
    Zitat Zitat von AndreasMeier Beitrag anzeigen
    Ist damit wirklich eine Überprüfung der Funktion gegeben ?
    Nein, lediglich ob die extension verfügbar ist.

    Zur vollen Funktionalitätbegenbenheit müsste man bei jeder Funktionsanwendung mit Exceptions oder if-else arbeiten.

    Ein quick&dirty beispiel bei dem jede GD Funktion, je nach Rückgabewert behandelt wird:
    PHP-Code:
    <?php

    // create a 320*240 image
    $img = @imagecreatetruecolor(320240)
          or die(
    'Cannot Initialize new GD image resource');

    if (
    imagesx($img) > 0) {  // imagesx - Returns the width of the given image  resource.
      //  alles ok ist breiter als 0
      // weiter mit image arbeiten
    } else {
      echo 
    'Error: imagewidth is 0.';
      exit;
    }

    ?>
    Ist Zugriff auf Logfiles vorhanden oder Errors die man sich ansehen kann?

    Relativ oft ist einfach das MemoryLimit oder die max_execution_time überschritten.

    PHP-Code:
        ini_set("memory_limit","-1");
        
    ini_set("max_execution_time","360"); 
    Geändert von zenobic (22-09-2009 um 13:39 Uhr)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •