Ankündigung

Einklappen
Keine Ankündigung bisher.

title-Tag mit PHP auslesen

Einklappen

Neue Werbung 2019

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

  • title-Tag mit PHP auslesen

    Hallo Community,

    ich möchte mit PHP den Titel meiner Webseite auslesen, also sprich den Inhalt zwischen <title> und </title>.

    Im Internet habe ich folgenden Code gefunden:
    PHP-Code:
    {
         function 
    getPageTitle($sURL)
         if( (
    $sHTML file_get_contents($sURL)) && 
             
    preg_match("/<title>(.+)<\/title>/i"$sHTML$aTitle))  
         {
             return 
    trim($aTitle[1]);
         } 
         return 
    false;
    }

    echo 
    utf8_decode(getPageTitle("http://sklueh.de")); 
    Gefunden in:
    Klüh, Sebastian: Titel einer Webseite mit PHP auslesen. 2012
    URL: http://sklueh.de/2012/10/titel-einer...-php-auslesen/
    Stand: 28.10.2014
    Ich habe den Code in den Body meiner Webseite geschrieben. Die Seite ist auf einem Testrechner gespeichert, der XAMP als Webserver benutzt. Die Seite ist unter dem Namen "Titel_Auslesen.php" im Verzeichnis htdocs auf Laufwerk C gespeichert.

    Mein Code lautet folgendermaßen:
    PHP-Code:
    <?php
            
    function getTitleTag($webseite) {
            
    $titeltag "";
            
    $html implode(""file($webseite));
            if (
    preg_match("/<title>(.*)</title>/i"$html$title)) $titeltag $title[1];
            return 
    $titeltag;
            }

            
    $titel getTitleTag("http://localhost/Titel_Auslesen.php");
        
    ?>
    Leider bekomme ich folgende Fehlermeldung:

    Warning: file(http://localhost/Titel_Auslesen.php): failed to open stream: HTTP request failed! in C:\xampp\htdocs\Testseiten\Titel_Auslesen.php on line 24

    Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\Testseiten\Titel_Auslesen.php on line 24
    Ich vermute, dass ich die URL der Seite falsch angebe. Ich hab alle Varianten ausprobiert. Mit http, und ohne. Mit vollständigem Pfad und nur mit Dateinamen. Ich weiß nicht weiter. Wieso funktioniert der Code nicht?

    Bitte um Hilfe!

    Besten Gruß
    zachy


  • #2
    Wenn du die Funktion in der Seite aufrufst, aus der du den Titel auslesen willst, drehst du dich im Kreis. Denn, bevor die Seite eine Ausgabe macht, ruft sie die Funktion wieder auf und so weiter.
    Der Unterschied zwischen dem richtigen Wort und dem beinahe richtigen ist derselbe Unterschied wie zwischen dem Blitz und einem Glühwürmchen.

    Kommentar


    • #3
      Du hast diesen Code also in der "Titel_Auslesen.php" gespeichert und rufst in dieser dann das folgende auf?

      PHP-Code:
      $titel getTitleTag("http://localhost/Titel_Auslesen.php"); 
      Damit bekommst du natürlich eine Endlosschleife, da die Datei sich immer wieder selbst aufruft.

      Ausserdem hast du noch einen kleinen Fehler in deinem preg_match:

      PHP-Code:
      preg_match("/<title>(.*)<\/title>/i"$html$title
      So sollte es sein (mit einem Backslash vor dem Slash des schließenden Titel Tags).

      Den Titel der Seite, in der diese Funktion steht, den brauchst du ja auch nicht auf diese Weise abzufragen, den solltest du ja sowieso kennen.

      Etwas wie

      PHP-Code:
      <?php
      function getTitleTag($webseite) { 
              
      $titeltag ""
              
      $html implode(""file($webseite)); 
              if (
      preg_match("/<title>(.*)<\/title>/i"$html$title)) $titeltag $title[1]; 
              return 
      $titeltag
              } 

              echo 
      getTitleTag("http://www.php.de/php-einsteiger/111517-title-tag-mit-php-auslesen.html");
      sollte allerdings funktionieren und den Titel dieser Seite hier ausgeben.

      Kommentar


      • #4
        Hallo SteiniKeule,

        vielen Dank für deine schnelle und hilfreiche Antwort!

        Ich brauche den Titel der Webseite, da ich ihn in einer SQL-Abfrage benutzen will. In der Datenbank habe ich zu jeder Seite unterschiedliche Informationen gespeichert, die in der Sidebar der Seite auftauchen sollen.

        Ist PHP dafür überhaupt der richtige Weg?

        Beste Grüße
        zachy

        Kommentar


        • #5
          In der EIGENEN Seite wirst du den Titel doch wohl ohnehin kennen, immerhin ist es DEIN Code der den Titel ins HTML Dokument hineinschreibt.
          Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

          Kommentar


          • #6
            Zitat von lstegelitz Beitrag anzeigen
            In der EIGENEN Seite wirst du den Titel doch wohl ohnehin kennen, immerhin ist es DEIN Code der den Titel ins HTML Dokument hineinschreibt.
            Hallo Istegelitz,

            das ist leider nicht so einfach. Ich arbeite mit WordPress. Der PHP-Code soll in einem Text-Widget stehen, welches in die Sidebar eingefügt wird.

            Der Code in dem Widget muss also in der Lage sein den Titel der gerade geöffneten Webseite auszulesen.

            Ich hoffe ich habe das Problem hinreichend erklärt, sonst gerne noch mal nachfragen.

            Besten Gruß
            zachy

            Kommentar


            • #7
              In WP brauchst du dafür keine eigene Funktion, das hat sowas schon eingebaut.

              http://codex.wordpress.org/Function_Reference/the_title sollte da weiterhelfen.

              Kommentar


              • #8
                Ich habe mit WP nicht so viel zu tun. Aber ich kann mir gut vorstellen, dass man im "Text-Widget" nicht einfach so auf WP-Funktionen zugreifen kann. Weiter kann ich mir auch nicht vorstellen, dass man in einem Text-Widget überhaupt irgendwas mit PHP machen kann...
                Der Unterschied zwischen dem richtigen Wort und dem beinahe richtigen ist derselbe Unterschied wie zwischen dem Blitz und einem Glühwürmchen.

                Kommentar


                • #9
                  Kann man, bin mir grad nicht sicher ob man dafür noch ein Zusatzaddon braucht (ggf "exec_php"), aber möglich ist das auf jeden Fall.

                  Kommentar


                  • #10
                    Zitat von WTB Beitrag anzeigen
                    In WP brauchst du dafür keine eigene Funktion, das hat sowas schon eingebaut.

                    http://codex.wordpress.org/Function_Reference/the_title sollte da weiterhelfen.
                    Hallo WTB,

                    vielen Dank, das hat mir sehr geholfen!

                    Man kann mit
                    PHP-Code:
                    <?php echo get_the_title(); ?>
                    im Text Widget den Titel der Seite abfragen.

                    Kommentar


                    • #11
                      Zitat von SteiniKeule Beitrag anzeigen
                      Ich habe mit WP nicht so viel zu tun. Aber ich kann mir gut vorstellen, dass man im "Text-Widget" nicht einfach so auf WP-Funktionen zugreifen kann. Weiter kann ich mir auch nicht vorstellen, dass man in einem Text-Widget überhaupt irgendwas mit PHP machen kann...
                      Hallo SeiniKeule,

                      doch kann man. Für alle Interessierten hier die Anleitung
                      http://pixelbar.be/blog/php-code-in-...n-ohne-plugin/

                      Besten Gruß
                      zachy

                      Kommentar


                      • #12
                        Natürlich kann man Wordpress ändern / erweitern damit es PHP in einem Text-Widget kann. Aber meine Aussage bezieht sich auf ein unverändertes Wordpress und ein einfaches Text-Widget. Es gibt ausreichend Plugins, die es auch erlauben in Artikel / Seiten / Widgets PHP zu verwenden. Aber mMn. kann Wordpress das nicht ohne geändert zu werden oder ohne Plugin.
                        Der Unterschied zwischen dem richtigen Wort und dem beinahe richtigen ist derselbe Unterschied wie zwischen dem Blitz und einem Glühwürmchen.

                        Kommentar

                        Lädt...
                        X