Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP: HTML einlesen, Problem mit gzip-komprimierten Seiten

Einklappen

Neue Werbung 2019

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

  • PHP: HTML einlesen, Problem mit gzip-komprimierten Seiten

    Hallo zusammen,

    ich habe aktuell ein PHP-Problem und hoffe, mir kann jemand weiterhelfen...

    Folgender Code ist derzeit im Einsatz:
    Code:
        ob_start();
        include_once($GETURL);
        $externalpage = ob_get_contents();
        ob_end_clean();
    Grundsätzlich kann ich damit eine HTML-Seite ($GETURL) wunderbar einlesen und in der Variable $externalpage ablegen - nur leider klappt dies nicht mit Seiten von Webservern, welche gzip-Komprimierung aktiviert haben. Zumindest vermute ich stark, dass dies die Ursache ist.

    Hat jemand eine Idee dazu?

    Danke im voraus...


  • #2
    Zitat von MrZeropage Beitrag anzeigen
    Hat jemand eine Idee dazu?
    include ist die falsche Methode um Daten von einem anderen Server einzulesen (und auch gefährlich wenn die Seite PHP-Code enthält!), versuch es mal mit Dateifunktionen (z.B. file_get_contents()).

    Kommentar


    • #3
      Hätte ich schon, ging aber auch nicht... bei gzip-Sites

      Kommentar


      • #4
        Zitat von MrZeropage Beitrag anzeigen
        Hätte ich schon, ging aber auch nicht... bei gzip-Sites
        Definiere "geht nicht". Code? Welche Seite "geht nicht"?

        Kommentar


        • #5
          Zitat von MrZeropage Beitrag anzeigen
          Grundsätzlich kann ich damit eine HTML-Seite ($GETURL) wunderbar einlesen und in der Variable $externalpage ablegen
          include führt PHP-Code aus und das ist auf externe Urls gefährlich. Ausserdem ist und sollte include auf Urls in der php.ini per allow_url_include = off deaktiviert sein.

          Folgendes wäre besser:

          PHP-Code:
          $externalpage file_get_contents($GETURL); 

          Kommentar


          • #6
            Hier der angepasste Code, es kommt damit kein Ergebnis:

            Code:
            $GETURL = "<entfernt>";
            
            ob_start();
            include_once($GETURL);
            $externalpage = file_get_contents($GETURL);
            ob_end_clean();
            
            echo $externalpage;
            Ist ein Kunde von mir, ich will die eingelesenen Informationen (HTML) weiterverarbeiten.
            Die Website hat gzip-Komprimierung aktiv, ausserdem sind die Seiten gecached (WordPress, WP Fastest Cache).

            Jemand eine Idee, wie ich das hinbekomme? Gibt noch andere Seiten, die ich auch nicht auslesen kann, bei den meisten klappt es aber, liegt also nicht an der oben genannten Zielseite.

            Kommentar


            • #7
              Zitat von MrZeropage Beitrag anzeigen
              Hier der angepasste Code, es kommt damit kein Ergebnis:
              Dann machst du was falsch, bei mir funktioniert der Code. Was genau meinst du mit "kein Ergebnis"? Irgendwas muss doch passieren ...

              Außerdem: lass den Unsinn mit ob_start/include/ob_end_clean weg!

              Ist ein Kunde von mir, ich will die eingelesenen Informationen (HTML) weiterverarbeiten.
              Darfst du das?

              Kommentar


              • #8
                ja, ich darf das, ist ja auch mein Kunde und für dessen Intranet benötige ich Daten der Website

                Wir bei dir mit meinem Code der HTML-Content der Seite ausgegeben ? *staun*

                Bei mir kommt da nach langer Zeit einfach nichts, leere weisse Seite...

                Kommentar


                • #9
                  Zitat von MrZeropage Beitrag anzeigen
                  Bei mir kommt da nach langer Zeit einfach nichts, leere weisse Seite...
                  Fehlermeldungen und -ausgabe aktiviert?

                  Kommentar


                  • #10
                    ja...

                    error_reporting(E_ALL|E_STRICT);
                    ini_set('display_errors', 1);


                    Meine Frage: kommt bei dir denn ein Ergebnis, ist der HTML-Code der Seite in $externalpage eingelesen ?

                    Kommentar


                    • #11
                      Zitat von MrZeropage Beitrag anzeigen
                      Meine Frage: kommt bei dir denn ein Ergebnis, ist der HTML-Code der Seite in $externalpage eingelesen ?
                      Ja.

                      Kommentar


                      • #12
                        Hier nicht, weder über WLAN/DSL in Safari und Chrome unter OS X, noch auf dem iPad über 3G/UMTS... jetzt versteh ich gar nichts mehr

                        Kommentar


                        • #13
                          Zitat von MrZeropage Beitrag anzeigen
                          Hier nicht, weder über WLAN/DSL in Safari und Chrome unter OS X, noch auf dem iPad über 3G/UMTS... jetzt versteh ich gar nichts mehr
                          Mit welchem Browser du es versuchst ist irrelevant, der Server auf dem PHP läuft muss die Datei runterladen - versuch es mal von einer anderen PHP-Installation bzw. von einem anderen Server aus.

                          Kommentar


                          • #14
                            MrZeropage mit der Selbsteinschätzung 'Fortgeschritten' soll nicht in der Lage sein ein paar Debugbefehle wie var_dump() einzubauen um zu sehen, ob mit file_get_contents da was reinkommt?

                            Wenn file_get_contents fehlschlägt, liefert es eine Warnung.

                            Ich vermute dahinter nur Schleichwerbung.
                            PHP-Klassen auf github

                            Kommentar


                            • #15
                              Unsinn, sorry. Da das gleiche Script mit einer anderen URL von einem anderen Webserver funktioniert (also die Daten ausliest) und hier bei der Zielseite des Kunden nicht, suche ich die Ursache. Ich habe dies in Komprimierung/Caching vermutet, was auf der anderen Seite nicht aktiv ist.

                              Der var_dump von $externalpage liefern bool(false)

                              file_get_contents schlägt offenbar nicht fehl, bekommt nur keine Daten zurückgeliefert.
                              Das ist ja mein beschriebenes Problem und deshalb habe ich hier angefragt - wäre toll, wenn das gelöst wird

                              @tk1234
                              Habe das Script nun auf einem anderen Server gestartet, dort funktioniert es tatsächlich.
                              Auf HostEurope funktioniert es nicht, jedoch seltsamerweise wie gesagt klappt das Auslesen mit anderen URLs/Servern.

                              Damit ändert sich die Frage, es liegt nicht am Code, sondern an dem HostEurope-Server... jemand eine Idee, welche PHP-Einstellung das sein könnte?

                              Zitat von phpinfo()
                              PHP Version 5.3.29

                              Directive Local Value Master Value
                              allow_call_time_pass_reference Off Off
                              allow_url_fopen On Off
                              allow_url_include On Off
                              always_populate_raw_post_data Off Off
                              arg_separator.input & &
                              arg_separator.output &amp; &amp;
                              asp_tags Off Off
                              auto_append_file no value no value
                              auto_globals_jit On On
                              auto_prepend_file no value no value
                              browscap no value no value
                              default_charset no value no value
                              default_mimetype text/html text/html
                              define_syslog_variables Off Off
                              disable_classes no value no value
                              disable_functions no value no value
                              display_errors Off On
                              display_startup_errors Off Off
                              doc_root no value no value
                              docref_ext no value no value
                              docref_root no value no value
                              enable_dl Off Off
                              error_append_string no value no value
                              error_log no value no value
                              error_prepend_string no value no value
                              error_reporting 337 30711
                              exit_on_timeout Off Off
                              expose_php Off Off
                              extension_dir /usr/lib/php/20090626/ /usr/lib/php/20090626/
                              file_uploads On On
                              highlight.bg #FFFFFF #FFFFFF
                              highlight.comment #FF9900 #FF9900
                              highlight.default #0000BB #0000BB
                              highlight.html #000000 #000000
                              highlight.keyword #007700 #007700
                              highlight.string #DD0000 #DD0000
                              html_errors On On
                              ignore_repeated_errors Off Off
                              ignore_repeated_source Off Off
                              ignore_user_abort Off Off
                              implicit_flush Off Off
                              include_path .:/usr/share/pear/php5.3 .:/usr/share/pear/php5.3
                              log_errors On Off
                              log_errors_max_len 1024 1024
                              magic_quotes_gpc Off Off
                              magic_quotes_runtime Off Off
                              magic_quotes_sybase Off Off
                              mail.add_x_header Off Off
                              mail.force_extra_parameters no value no value
                              mail.log no value no value
                              max_execution_time 30 30
                              max_file_uploads 50 50
                              max_input_nesting_level 64 64
                              max_input_time 60 60
                              max_input_vars 1000 1000
                              memory_limit 128M 128M
                              open_basedir no value no value
                              output_buffering no value no value
                              output_handler no value no value
                              post_max_size 8M 8M
                              precision 14 14
                              realpath_cache_size 5M 5M
                              realpath_cache_ttl 300 300
                              register_argc_argv On On
                              register_globals Off Off
                              register_long_arrays Off Off
                              report_memleaks On On
                              report_zend_debug On On
                              request_order no value no value
                              safe_mode Off Off
                              safe_mode_exec_dir no value no value
                              safe_mode_gid Off Off
                              safe_mode_include_dir no value no value
                              sendmail_from no value no value
                              sendmail_path /usr/sbin/sendmail -t -i /usr/sbin/sendmail -t -i
                              serialize_precision 100 100
                              short_open_tag On On
                              SMTP localhost localhost
                              smtp_port 25 25
                              sql.safe_mode Off Off
                              track_errors Off Off
                              unserialize_callback_func no value no value
                              upload_max_filesize 8M 8M
                              upload_tmp_dir /is/htdocs/user_tmp/wpxxxxxxx_1ST38TXUDR /tmp
                              user_dir no value no value
                              user_ini.cache_ttl 300 300
                              user_ini.filename .user.ini .user.ini
                              variables_order EGPCS EGPCS
                              xmlrpc_error_number 0 0
                              xmlrpc_errors Off Off
                              y2k_compliance On On
                              zend.enable_gc On On

                              Kommentar

                              Lädt...
                              X