Titel von einer Seite herausfinden!

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

  • Titel von einer Seite herausfinden!

    Hallo,
    ich weiß leider nicht genau wie man das nennt. Also in manchen Forensysteme gibts so eine Funktion, wenn in einem Beitrag eine URL eingetragen ist wird diese einfach duch den Seitentitel ersetzt (statt www.example.com -> Example)

    Wie funktoniert sowas?

    http://xhtmlforum.de hat so eine Funktion

    lg
    ele!

  • #2
    vermutlich wird die Seite eingelesen: file_get_contents()
    und dann der Titletag ausgelesen preg_match()

    Fertig.

    Kommentar


    • #3
      Original geschrieben von TobiaZ
      vermutlich wird die Seite eingelesen: file_get_contents()
      und dann der Titletag ausgelesen preg_match()

      Fertig.
      Ich hab mir file_get_contents() etwas genauer auf php.net angeschaut, aber irgendwie werd ich nicht schlau.
      Kannst du mir da auf die Sprünge helfen?

      PHP-Code:
      <?php

      $url
      =file_get_contents("http://google.de");
      print_r($url);

      ?>
      so zeigt er mir die google seite an^^

      Kommentar


      • #4
        Wow, gratuliere.

        Ich weiß zwar nicht, was dich dazu bewegt hat, die variable mit dem INHALT DER SEITE $url zu nennen, aber was hindert dich jetzt noch daran, diesen mit preg_match() entsprechend zu parsen?

        Kommentar


        • #5
          ok, habs so gemacht
          wusste einfach nicht wie ich den text zwischen <title></title> filtern könnte^^

          PHP-Code:
          function url($url) {

              
          $get file_get_contents($url);
              
          preg_match("#<title>(.*)<\/title>#is"$get$matches);
              echo 
          "<a href='".$url."'>".$matches[1]."</a>";
          }

          $links  = array(=> 'http://google.de''http://php-resource.de''http://php.net'
          'http://www.vorsprungdurchwebstandards.de/theory/retro-coding/');
           foreach (
          $links as $link)
          {
          url($link);
          echo 
          "<br />";

          Is das so ok? (es funktoniert auf jedenfall!)

          Kommentar


          • #6
            ?????

            Wieso stellt man denn Fragen, wenn man die Antwort weiß?
            Das was du geschrieben hast ist (wenn es keine Schreibfehler gibt) komplett richtig!

            Probleme bekommst du nur, wenn der Titel mit Javascript gesetzt wird!
            Find Parties?
            Partysuche

            Kommentar


            • #7
              Wieso stellt man denn Fragen, wenn man die Antwort weiß?
              Ich denke mal, er hat den Code erst NACH meinen Hinweisen geschrieben, oder gesucht.
              Probleme bekommst du nur, wenn der Titel mit Javascript gesetzt wird!
              Das hat dann mit markup wenig zu tun. man kann ja ohne weiteres noch die länge von $matches[1] prüfen, und ggf. statt titel die Url angeben.

              Kommentar


              • #8
                Hallo,

                ich hab die Antwort vorher nicht gewusst, tobiaz hat mir die funktionen genannt die ich verwenden kann. Und so hab ich das geschrieben

                Vielen Dank! Tobiaz!

                Ich werd das ganze jetzt erweitern und draus eine Klasse schreiben (nur zum Testen)

                Das is mein Ansatz:
                Die links werden in der Datenbank eingetragen...

                Die erste funktion (function get_links) holt die einträge aus der Datenbank und gibt sie dann an die function handle weiter, da wird der Titel rausgesucht via file_get_contents und das ganze wird dann wieder auf die function show_urls weitergeleitet.
                Die function gibt dann die formatierten links aus.

                So könnte ich das ganze machen oder? (Ich mach das damit ich lerne wie man mit Klassen arbeitet)

                Kommentar


                • #9
                  Wie hast du dir das weiterleiten vorgestellt?
                  Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                  Kommentar


                  • #10
                    das ganze sollte, beim eintragen in die Datenbank geschehen. Nicht beim auslesen.

                    Kommentar


                    • #11
                      Hi,
                      @tobiaZ
                      danke für den Tipp Ich hab am anfang die links einfach aus der DB ausgelen (Felder: link_id, link_url) weil ich nicht an das eingetragen gedacht habe.

                      Wollte nur die Einträge auslesen und keine weiteren einfügen.

                      Kommentar


                      • #12
                        Original geschrieben von TobiaZ
                        das ganze sollte, beim eintragen in die Datenbank geschehen. Nicht beim auslesen.
                        Wenn das ganze beim Eintagen geschiet wird es ja einmalig gespeichert. Was passiert wenn sich das Titel der Seite ändert?

                        Kommentar


                        • #13
                          Ich hab am anfang die links einfach aus der DB ausgelen (Felder: link_id, link_url) weil ich nicht an das eingetragen gedacht habe.

                          Wollte nur die Einträge auslesen und keine weiteren einfügen.
                          Dann ist es dennoch eine einmalige aktion.

                          Wenn das ganze beim Eintagen geschiet wird es ja einmalig gespeichert. Was passiert wenn sich das Titel der Seite ändert?
                          Dann ändert es sich halt. Du kannst das ganze ggf. 1x pro Woche updaten. oder wie auch immer. Aber du willst die Ladezeit nicht ernsthaft jedem besucher, jedes mal aufs auge drücken?

                          Kommentar


                          • #14
                            Hmm ja klingt auch gut Kann eine Funktion schreiben mit den man die ganze Liste aktualisiert. Aber wäre das optimal wenn da 1000 Links drin stehen würden?

                            Kommentar


                            • #15
                              Musst du gucken, wie viel dein Server packt. Spricht ja nichts dagegen, das ganze häpchenweise ein mal am Tag zu machen. so 70 bis 100 Stück, da hast du immernoch alle zwei Wochen aktuelle Daten.

                              Kommentar

                              Lädt...
                              X