Ankündigung

Einklappen
Keine Ankündigung bisher.

file_get_contens liefert unterschiedliche Ergebnisse

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • file_get_contens liefert unterschiedliche Ergebnisse

    Hallo Liebe Community,
    Ich stehe gerade vor einem Rätsel.

    Der folgende Code sollte eigentlich per file_get_contents mir den html Code eines Shoutcast V2. Servers ausgeben.

    Die Sache ist nur die auf Produktiv Server Funktioniert der Code so wie er soll,
    Doch auf dem Webspace bekomme ich einen zurückgewiesene Verbindung zurück.

    Was als Info für euch noch wichtig ist ist das die Server Daten in dem Script (Hier Verändert in 127.0.0.1) auf meinem System wie auf dem Server die selben sind.

    PHP5.6 ist die Version auf meinem Local System wie auf dem Webspace.

    Noch ne Anmerkung: die Funktion Curl kommt nicht in frage da diese auf dem Webspace deaktiviert ist.

    PHP-Code:
    <?PHP
    $hostname 
    "127.0.0.1";
    $port "1234";
    $sid 1;

    $socket file_get_contents("http://".$hostname.":".$port."/index.html?sid=".$sid);

    preg_match_all("|<td>(.*)</td>|U"$socket$treffer);

    $status = array("Server Status" => $treffer[0][10],
                    
    "Stream Status" => $treffer[0][11],
                    
    "Listener Peak" => $treffer[0][12],
                    
    "Average Listen Time" => $treffer[0][13],
                    
    "Stream Name" => $treffer[0][14],
                    
    "Content Type" => $treffer[0][15],
                    
    "Stream Genre" => $treffer[0][16],
                    
    "Website" => $treffer[0][17],
                    
    "Current Song" => $treffer[0][18]);

    foreach (
    $status as $key => $value) {
        
    $status[$key] = preg_replace("/<(.*?)>/"""$status[$key]);
    }

    echo 
    $status['Current Song'];

  • #2
    Was nun deine Frage ist kann ich nicht rauslesen. Den Code hast du verändert (host,port), die konkrete Fehlerausschrift verrätst du nicht und reproduzierbar ist das Problem für uns auch nicht.
    Zitat von Waldmaus Beitrag anzeigen
    Die Sache ist nur die auf Produktiv Server Funktioniert der Code so wie er soll,
    Doch auf dem Webspace bekomme ich einen zurückgewiesene Verbindung zurück.
    Da kann nur wieder geraten werden: Die Verbindung auf deinem "Webspace" ( was auch immer das sein soll, deine Entwicklungsumgebung? ) wird geblockt.

    Und was ist an den Beitrag fortgeschritten?

    Kommentar


    • #3
      Debugge, dann weißt du es: https://php-de.github.io/jumpto/faq/#debugging

      MOD: Verschoben von PHP-Fortgeschritten
      The string "()()" is not palindrom but the String "())(" is.

      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar


      • #4
        allow_url_fopen richtig gesetzt?

        Kommentar


        • #5
          Vielen dank für eure Antworten.

          1. error_reporting ist bei mir immer Voll aufgedreht.
          2. allow_url_fopen habe ich Extra nochmal Geschaut ist auch true.

          Nun ich habe natürlich schon mal etwas weiter getestet und Verschiedenste Sachen ausprobiert.

          Und zwar musste ich Feststellen das weder file_get_contens noch fsockopen funktionieren.
          Beide geben einen Connection Time out zurück.

          Leider fällt mir nun auch keine Weitere Möglichkeit ein woran es noch Liegen könnte.

          Kommentar


          • #6
            Kann man nur spekulieren. Timeout zu kurz, Server (Shoutcast oder dein Webspace) blockt Verbindung aus irgendeinem Grund, …

            Du könntest mal versuchen, ob du irgendeine andere Seite per file_get_contents laden kannst.

            Kommentar


            • #7
              Zitat von Waldmaus Beitrag anzeigen
              Die Sache ist nur die auf Produktiv Server Funktioniert der Code so wie er soll,
              Doch auf dem Webspace bekomme ich einen zurückgewiesene Verbindung zurück.
              Mir schwant: was Du als Produktivserver bezeichnest ist bei Dir der Entwicklungsrechner und das was Du als Webspace bezeichnest ist der Server der eigentlich als Produktiv Server bezeichnet werden sollte.

              Das Produktiv bezieht sich nicht darauf das dort produktiv am Server gearbeitet wird sondern darauf das der Server produktiv live im Netz eingesetzt wird. Deswegen auch gern als Live Server/System bezeichnet.

              Zitat von Waldmaus Beitrag anzeigen
              PHP-Code:
              $hostname "127.0.0.1";
              $port "1234"
              Ich hoffe die IP Adresse ist nur ein Platzhalter. Sonst müstest Du auf den Live-System auch einen SouthCast Server installieren damit 127.0.0.1 funktioniert.

              Zitat von Waldmaus Beitrag anzeigen
              PHP-Code:
              $socket file_get_contents("http://".$hostname.":".$port."/index.html?sid=".$sid);
              preg_match_all("|<td>(.*)</td>|U"$socket$treffer); 
              Doofer Bezeichner socket. Da kein Socket drin ist in der Variable sondern HTML solltest Du das irgendwie treffernder benennen. $content, $htmlContent wären 2 Möglichkeiten.

              Bezeichner sollten immer so gewählt werden das Sie ein passende Aussage treffen!

              Edit: Was mir noch eingefallen ist. PHP schickt mit Defaulteinstellung PHP+Version als USER_AGENT string. Manche Server filtern darauf. Produktivsysteme z.B. bei Hostern sind da gern mal anders konfiguriert.

              Das kannst Du am einfachsten testen wenn Du den user-agent string in der php.ini setzt. Oder halt einen stream_context erstellen dem als Option den user agent mitgeben und diesen an file_get_contents übergeben

              Oder eine HTTP Client Library in PHP nutzen

              Kommentar


              • #8
                Ich vermute schwer, dass dein Hoster das blockt. Bei Hetzner z.B. meistens der Fall.
                [URL="https://github.com/chrisandchris"]GitHub.com - ChrisAndChris[/URL] - [URL="https://github.com/chrisandchris/symfony-rowmapper"]RowMapper und QueryBuilder für MySQL-Datenbanken[/URL]

                Kommentar

                Lädt...
                X