fopen - Webseite

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

  • fopen - Webseite

    Hallo,

    ich versuche mit folgendem Code eine Webseite in eine Variable zu speichern:

    PHP-Code:
    $filename "http://www.domain.de/Pfad/Datei.htm";
    $handle fopen ($filename"r");
    $content fread ($handlefilesize ($filename)); 

    Das funktioniert aber nicht. Folgende Fehlermeldung wird ausgegeben:

    Warning: filesize(): Stat failed for [entsprechende Datei] (errno=2 - No such file or directory)


    Mache ich mit fopen etwas grundsätzliches falsch? Die Date existiert definitiv. Auch wenn ich sie auf meinen Rechner ziehe und über WAMPP anspreche (...localhost ...) funktioniert das nicht.

    Kann mir jemand helfen?

    Vielen Dank schon einmal.
    Ralf

  • #2
    Versuchs mal mit file_get_contents
    Link
    mfG
    Corpse

    www.fh-hagenberg.at

    Kommentar


    • #3
      Re: fopen - Webseite

      Original geschrieben von SRalf
      Warning: filesize(): Stat failed for [entsprechende Datei] (errno=2 - No such file or directory)
      RTFM:

      int filesize ( string filename)
      [...]
      Diese Funktion ist nicht für remote Dateien geeignet, die zu prüfende Datei muss über das Dateisystem des Servers verfügbar sein.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Hallo,

        danke für eure Hilfen.

        Das mit dem Dateisystem bei filesize hatte ich leider nicht beachtet, mein Fehler. Daher natürlich ein guter Hinweis.

        Habe es inzwischen - etwas unsauber - umgangen, indem ich die Größe absolut angebe - was in meinem Fall geht ....

        Ralf

        Kommentar


        • #5
          Re: Re: fopen - Webseite

          und was wenn ich doch die größe einer entfernten datei wissen möchte?
          gibt's da wirklich keine möglichkeit?
          fragen macht spass, denken nicht

          Kommentar


          • #6
            dann musst du sie erst mal runterladen.

            Kommentar


            • #7
              also, gibt es keine möglichkeit.

              wenn ich eine downloadinformation haben möchte, ist's ja sicherlich sinnvoll die nach dem download anzuzeigen..

              (habe dateilinks auf entfernte dateien)
              fragen macht spass, denken nicht

              Kommentar


              • #8
                ich korrigiere mich.
                man kann einen HEAD http request abschicken und die antwort auswerten.
                nach "Content-Length: " müsste die größe der datei angezeigt werden.

                Kommentar


                • #9
                  oh, header...
                  hast du da vielleicht mal'n beispiel?
                  fragen macht spass, denken nicht

                  Kommentar


                  • #10


                    http://www.html-world.de/program/htt...p#head-methode
                    http://web-sniffer.net/

                    Kommentar


                    • #11
                      ja, danke,(man) ist immer blöd, wenn man nicht weiss wonach man suchen soll.


                      und wie macht man das mit den headern?
                      etwa so?
                      PHP-Code:
                      $fp fsockopen('localhost',80$errno$error,5)OR
                                               die(
                      $error."(".$errno.")");  
                                                   
                                               
                      fwrite($fp"HEAD / HTTP/1.0\r\n");    
                                               
                      fwrite($fp"\r\n");    
                                               
                      header('Content-Type: text/plain');   
                                               while(!
                      feof($fp)) {        
                                                   
                      $buffer fread($fp1025);        
                                                  
                      $buffer str_replace("\r\n"'\r\n'."\n"$buffer);       
                                                  echo 
                      $buffer;    }    
                                              
                      fclose($fp); ?> 
                      aber dann bekomme ich folgende fehlermeldung:

                      Code:
                      Warning: fsockopen() [function.fsockopen]: unable to connect to
                       localhost:80 (Ein Verbindungsversuch ist fehlgeschlagen, da die 
                      Gegenstelle nach einer bestimmten Zeitspanne nicht ordnungsgemäß reagiert hat, 
                      oder die hergestellte Verbindung war fehlerhaft, da der 
                      verbundene Host nicht reagiert hat. ) in 
                      D:\SERVER\apachefriends\xampp\htdocs\test\schnabbelbabbel.php on line 3
                      Ein Verbindungsversuch ist fehlgeschlagen, da die Gegenstelle nach einer 
                      bestimmten Zeitspanne nicht ordnungsgemäß reagiert hat, oder die hergestellte Verbindung 
                      war fehlerhaft, da der verbundene Host nicht reagiert hat. (10060)
                      fragen macht spass, denken nicht

                      Kommentar


                      • #12
                        etwa so?
                        eigentlich schon. nur das Content-Type scheint fehl am platz zu sein.

                        versuchs mit einem anderen server. die auswertung könnte so ähnlich aussehen, wie bei
                        http://de3.php.net/manual/en/functio...open.php#29577

                        Kommentar


                        • #13
                          Code:
                          Unable to find the socket transport "http" - did you forget to enable it when you configured PHP? (123731968)
                          ..kommt nun. wenn ich einen anderen server www.irgendwas.de anspreche
                          ich schreibe dann in die variable

                          PHP-Code:
                          $domain "http://www.irgendwas.de"


                          zum verständnis:

                          - ich öffne ne verbindung mit socket zum server
                          - der socket wir durch den filepointer wie ne datei behandelt
                          - in diese schreibe ich die HEAD anfrage mit puts?
                          - und dann gebe ich die datei mit while aus? oder wie?


                          ich denke ich hab ein defizit...
                          fragen macht spass, denken nicht

                          Kommentar


                          • #14
                            alles richtig, bis auf, dass ein domainname keine protokolangabe enthalten darf.

                            Kommentar


                            • #15
                              PHP-Code:
                              $domain "http://www.irgendwas.de"
                              ok, ohne "http://"
                              dann geht's
                              fragen macht spass, denken nicht

                              Kommentar

                              Lädt...
                              X