Titel einer Seite auslesen.

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

  • Titel einer Seite auslesen.

    Hallo,

    ich möchte den Titel einer Seite auslesen... und das sollte möglichst schnell von statten gehen. Sowas wie file_get_contents, fopen/fread ist mir zu langsam. Zumindest dauerts einfach ewig...

    Code:
    function getPageTitle($url) {
        $f = fopen($url, "r");
        $url = fread($f, 1024);
        preg_match('/<title>(.*)<\/title>/U', $url, $title);
    
        return $title['1'];
    }
    Ich will es praktisch wie beim WBB...

  • #2
    Und was funktioniert an deiner Lösung nicht?

    Kommentar


    • #3
      Es funktioniert aber

      Zumindest dauerts einfach ewig...
      Hab wohl die Frage zu sehr versteckt? Meine Frage: gibts was schnelleres? Eine bessere Lösung? Beim WBB dauerts nicht so lang. Am Server kanns eigentlich nicht liegen (root server...)

      Edit: hier im Forum ist es auch und es dauert nicht lang.
      Zuletzt geändert von Everdream; 27.06.2009, 02:17.

      Kommentar


      • #4
        Ziehst du den Titel aus Seiten auf deinem eigenen Server oder von fremden Seiten übers Netz?

        Kommentar


        • #5
          Von meinem eigenen Server.
          Ich könnte es natürlich so lösen das bei jedem Zugriff auf eine Seite diese in die Datenbank gespeichert wird (es geht um eine Onlineanzeige), aber was ist Ressourcenlastiger?

          Kommentar


          • #6
            Könntest nachschauen, mit welchen PHP-Befehlen man den Download limitieren, also eine max. Anzahl von Bytes definieren kann. Bei cURL ist das z. B. möglich. Nachdem der title immer ganz oben im header stehen soll, sollte das möglich sein.

            Kommentar


            • #7
              @deedee: Nix Download, lokale Datei!

              Du könntest statt preg_match() auf strpos() und substr() umsteigen. Das würde aber nicht viel schneller werden.
              Du solltest das File am Ende wieder schließen, besonders wenn diese Funktion sehr oft aufgerufen wird.
              Du könntest mit einer static Variablen eine URL- und Title-Liste führen, besonders wenn diese Funktion wiederholt mit den gleichen Parametern aufgerufen wird.

              Zumindest dauerts einfach ewig...
              Wie hast du das denn gemessen?

              Kommentar


              • #8
                Zitat von onemorenerd Beitrag anzeigen
                @deedee: Nix Download, lokale Datei!

                Du könntest statt preg_match() auf strpos() und substr() umsteigen. Das würde aber nicht viel schneller werden.
                Du solltest das File am Ende wieder schließen, besonders wenn diese Funktion sehr oft aufgerufen wird.
                Du könntest mit einer static Variablen eine URL- und Title-Liste führen, besonders wenn diese Funktion wiederholt mit den gleichen Parametern aufgerufen wird.


                Wie hast du das denn gemessen?
                Wie gesagt ... die Funktion dient für eine "Wer ist Wo" Anzeige.
                Wie ich das gemessen hab? Wenn alle Seiten sofort nach einem Klick da sind bis auf die "Wer ist Wo?"-Seite (dauert circa 10 Sekunden) aber dort nur ein User geladen ist (mein Testuser) ist das schon merkwürdig^^

                Ich versuchs mal noch mit dem schließen (glaub nicht dasses viel bringt, wie gesagt ist bisher nur ein User) ansonsten mach ichs wie oben beschrieben.

                Ich könnte es natürlich so lösen das bei jedem Zugriff auf eine Seite diese in die Datenbank gespeichert wird (es geht um eine Onlineanzeige), aber was ist Ressourcenlastiger?

                Kommentar


                • #9
                  Was steht in $url? Hoffentlich keine URL, denn sonst erzeugst du auf der Wer-ist-wo-Seite eine Endlosschleife!

                  Du scheinst für dein Anliegen einen falschen Ansatz gewählt zu haben.
                  Wie ermittelst du denn auf welcher Seite ein User gerade ist? Wahrscheinlich speicherst du bei jedem Aufruf irgendwo "User X ist jetzt auf Seite Y". Wieso speicherst du da nicht gleich den Title mit?

                  Kommentar

                  Lädt...
                  X