mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: So 28.04.2024 21:18 Benutzername: Passwort: Auto-Login

Thema: PHP-Problem: Bild von IP-Kamera abgreifen vom 21.09.2013


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> PHP-Problem: Bild von IP-Kamera abgreifen
Autor Nachricht
qualidat
Threadersteller

Dabei seit: 14.09.2006
Ort: Eichwalde bei Berlin
Alter: 63
Geschlecht: Männlich
Verfasst Sa 21.09.2013 13:17
Titel

PHP-Problem: Bild von IP-Kamera abgreifen

Antworten mit Zitat Zum Seitenanfang

Ist bitte mal jemand so freundlich und prüft, warum dieser eigentlich simpelst abgesicherte Code trotzdem hin und wieder (ca. 10% der Aufrufe) ein nicht darstellbares Bild produziert? Der Browser meint dann sinngemäß, die Grafik könne nicht dargestellt werden, weil sie Fehler enthalte. Ich weiss, dass der Code nicht gegen eine Endlosschleife angesichert ist, kommt noch. Der Fehler, den ich meine, kommt, wenn er kommt, sofort.
Code:
<?php

 $err=true;
   
    while ($err)
    {
   
        $dat = file_get_contents('http://admin:passw@192.168.200.101/snapshot.cgi');
        if ($dat)
        { 
            $img = imagecreatefromstring($dat);
            if ($img)
            { $err=false;
              header('Content-Type: image/jpeg');
              imagejpeg($img);
              imagedestroy($img);}
              else {usleep(200);}
        }
        else {usleep(200);}
    }
?>


Das würde ja bedeuten, dass man sich auf $img = imagecreatefromstring($dat); if ($img) ... nicht verlassen kann ... ?


Zuletzt bearbeitet von qualidat am Sa 21.09.2013 13:31, insgesamt 4-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
remote

Dabei seit: 10.11.2006
Ort: /var/www/
Alter: 110
Geschlecht: Männlich
Verfasst Sa 21.09.2013 13:35
Titel

Antworten mit Zitat Zum Seitenanfang

debugger anknipsen und nachgucken was in $dat und $img steckt wenn der fehler auftritt. Glaskugel
in den logs steht ja vermutlich nichts, oder?

alternativ den var inhalt nebst bilddatei auf die platte schreiben - dann hast du gleich mehrere samples.
  View user's profile Private Nachricht senden
Anzeige
Anzeige
qualidat
Threadersteller

Dabei seit: 14.09.2006
Ort: Eichwalde bei Berlin
Alter: 63
Geschlecht: Männlich
Verfasst Sa 21.09.2013 14:31
Titel

Antworten mit Zitat Zum Seitenanfang

Jaaaa ... das Problem hat sich geklärt.

"Schuld" war die Funktion "imagecreatefromstring", denn die hat bei korrupten Bilddaten nicht nur ein False geliefert - was ich ja abfange - sondern zusätzlich einen Fehlertext. Der wurde dann brav mit einem Imagehaeder versehen und ausgegeben ... mrgs.

Das Problem wurde durch ein vorangestelltes "@" unterbunden ... *balla balla*


Zuletzt bearbeitet von qualidat am Sa 21.09.2013 14:32, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Sa 21.09.2013 19:06
Titel

Antworten mit Zitat Zum Seitenanfang

machs doch gleich richtig und benutze is_resource() oder den strikten vergleichsoperator ===
irgendwann buch ich mal ne Schulung bei Dir...
  View user's profile Private Nachricht senden
qualidat
Threadersteller

Dabei seit: 14.09.2006
Ort: Eichwalde bei Berlin
Alter: 63
Geschlecht: Männlich
Verfasst Sa 21.09.2013 19:34
Titel

Antworten mit Zitat Zum Seitenanfang

bacon hat geschrieben:
machs doch gleich richtig und benutze is_resource() oder den strikten vergleichsoperator ===
irgendwann buch ich mal ne Schulung bei Dir...


"is_resource()" ist echt ein Vorschlag, werde ich probieren ... wobei - das Problem ist ja gelöst.
Aber was soll ich bitte in dem Code "strikt" womit vergleichen?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst So 22.09.2013 10:36
Titel

Antworten mit Zitat Zum Seitenanfang

file_get_contents bspw. liefert FALSE im Fehlerfall zurück. Funktioniert der callout durch den streamwrapper, liefert aber einen emptystring "" zurück, oder "0" oder whatever, ist nicht zu unterscheiden, ob der Webservice nur nicht funktioniert hat, oder ob die Rückgabe eben leer, 0 oder sonst was ist -- das PHP Typesystem ist ja bekanntlich mehr als kaputt.

ein

if(false === ($contents = file_get_contents())

ist also immer einem if($contents = file_get_contents())

vorzuziehen.
  View user's profile Private Nachricht senden
 
Ähnliche Themen [CSS] Div 100% Höhe und BG-Bild - Problem
IE-Problem - Bild 100% hoch
[FLASH MX] Problem mit Bild-Navigation
Illustrator CS3 Bild/Schnittmasken Problem
DIV Problem: Text neben Bild
Illu Cs2 Problem mit gezeichnetem Bild
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.