file_get_contents(): SSL: fatal protocol error

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

  • file_get_contents(): SSL: fatal protocol error

    Da bin ich wieder... lol

    Mein Problemchen jetzt:

    Ich versuche eine URL mit file_get_contents in eine Variable zu speichern.
    Da sie leider mit https beginnt, funktioniert scheinbar folgendes nicht mehr:
    PHP-Code:
    $txt file_get_contents($link);
    echo 
    $txt
    Ergebniss:
    Code:
    Warning: file_get_contents(): SSL: fatal protocol error in...
    Kann mir jemand erklären wie ich den fehler umgehe?

    Thx

  • #2
    Ich bin mir nicht mehr ganz sicher, aber ich meine das ist ein bug im zusammenhang mit Microsoft IIS.

    Versuch mal ein '@' vorm file_get_contents...
    [color=blue]...ich sehe was, was du nicht siehst...und das ist der QUELLTEXT![/color]

    Kommentar


    • #3
      Aha ok, scheinbar scheint es mit dem '@' zu funktionieren.

      Was bezweckt ein '@'?

      Kommentar


      • #4
        Das gehört zu den Grundlagen. Das '@' unterdrückt evtl. Fehlermeldungen. Normalerweise sollte man das nicht verwenden sondern eher entsprechende fehlerabfragen einzubauen.

        In diesem fall ist es aber wie gesagt ein bug der ab PHP Version xx? dadurch behoben wurde, das php die fehlermeldung automatisch unterdrückt. In älteren versionen muss man es halt mit dem '@' machen um diesen fehler zu ignorieren.
        [color=blue]...ich sehe was, was du nicht siehst...und das ist der QUELLTEXT![/color]

        Kommentar


        • #5
          Hmm ok verstehe.

          Ich hab gehört das ich eventuell vorher mit den Server einen "Handshake" machen muss, dann geht es. Kann das sein?

          Wenn ja wie würde das dann aussehen oder wie könnte ich es realisieren?

          Kommentar


          • #6
            Das ginge mit fsockopen(), dürfte bei diesem Sachverhalt aber nichts bringen, da file_get_contents() über fopen-wrapper läuft, also mit ziemlicher Sicherheit eine eigene, weitere Verbindung öffnet.

            Wart mal, ich schlag's nach ...

            http://php.net/manual/en/wrappers.http.php
            When using SSL, Microsoft IIS will violate the protocol by closing the connection without sending a close_notify indicator. PHP will report this as "SSL: Fatal Protocol Error" when you reach the end of the data. To workaround this, you should lower your error_reporting level not to include warnings. PHP 4.3.7 and higher can detect buggy IIS server software when you open the stream using the https:// wrapper and will suppress the warning for you. If you are using fsockopen() to create an ssl:// socket, you are responsible for detecting and suppressing the warning yourself.
            Mit "if you are using fsockopen()" ist nicht gemeint "fsockopen() und dann file_get_contents()" sondern "wenn sie auf fopen-wrapper verzichten und die Resource mit fsockopen(), fread() usw. selbst holen" und selbst dann gilt ja: "suppress the warning yourself". Also kein Gewinn.
            Ich hoffe, das war einigermaßen verständlich.
            Für dich gilt jedenfalls: @ davor und Ruhe.

            Kommentar

            Lädt...
            X