Suchmaschinenoptimierung
   
 

SEMSEO Konferenz 2012
 

 
 

php: Links extrahieren und umschreiben

Neues Thema eröffnen   Neue Antwort erstellen    ABAKUS Foren-Übersicht -> Webprogrammierung, Templatedesign & Microformats
 mode_rewrite wandelt die Links nicht um! ausgelagerte css  
Fox Mulder

pr


: 16.11.2004
: 804



: 21.12.2004, 14:08    : php: Links extrahieren und umschreiben Antworten mit Zitat

Hallo,

ich möchte mit PHP in einem HTML Dokument alle Links finden und umschreiben.

Link Struktur im HTML Dokument:
<a href="dateiname?a=1&b=2&c=3">Linktext</a>

Nach dem Umschreiben solle die Links so o.ä. aussehen:
<a href="a1-b2-c3-Linktext.html">Linktext</a>

Die Anzahl der Parameter ist variabel.

Ich habe mit preg_match und Reg Expressions probiert die Links im HTML Dokument zu finden,
komme da aber nicht recht weiter.

Kennt jemand eine gute Ressource mit Beispielen in dieser Art?

Gruss
Nach oben
Fox Mulder Private Nachricht senden
bull

pr


: 20.09.2003
: 2176
: Vèneto


: 03.02.2005, 00:49    : php: Links extrahieren und umschreiben Antworten mit Zitat

*bump

Brauche gerade ebenfalls einen Linktextextraktor und scheitere.
Nach oben
bull Private Nachricht senden
derHund

pr


: 08.01.2005
: 299



: 03.02.2005, 08:38    : php: Links extrahieren und umschreiben Antworten mit Zitat

hmm,

hier http://pcre.nophia.de/evaluate/index.php findest du ein tool, daß dir eventuell ein wenig hilft, auch wenn es atm nicht viel mehr macht, als dir das debuggen abzunehmen. falls du dich mit regexp auskennst.

hier http://regexp-evaluator.de/tutorial.html findest du ein tutorial zum thema regexp, wenn du noch ein wenig wartest, hat der autor es geschafft, zu dem thema link-extraktion ein wenig zu schreiben.

im großen und ganzen brauchst du nur preg_match_all und den modifier U ... und den richtigen regexp

allgemein:
Code:
#<a.*href="(.*)".*>(.*)</a>#Uis


ach, hier: http://pcre.nophia.de/evaluate/627b8618e1b823aa1e94d18127d215e7/index.php#output

für weitere angaben, wie title etc. einfach analog vorgehen.
Nach oben
derHund Private Nachricht senden WWW
Fox Mulder

pr


: 16.11.2004
: 804



: 03.02.2005, 09:09    : php: Links extrahieren und umschreiben Antworten mit Zitat

Ich hatte das hier gefunden, evtl. hilft es Dir weiter:

Quelle:
http://www.php-faq.de/q/q-regexp-links-finden.html

Wie finde ich alle Links in einer HTML-Datei
$zeile sei der Inhalt einer zuvor eingelesenen HTML-Datei. Diese Variable muss innerhalb der While-Schleife neu zusammengebaut werden, sonst läuft man hier in eine Endlosschleife.
:

$pattern = '=^(.*)<a(.*)href\="?(\S+)"([^>]*)>(.*)</a>(.*)$=msi';
while (preg_match($pattern, $zeile, $txt))
{
/* $txt[3] enthält die gewünschte URL. */
echo $txt[3]."\n";

/* $zeile neu bauen */
$zeile = $txt[1]." hier war mal ein Link ".$txt[6];
}

/* $zeile zur Kontrolle ausgeben */
print "<br>".nl2br($zeile);

$txt enthält als Array alle Tokens, die in der Regexp in Klammern angegeben sind. $txt[0]als Sonderstellung enthält den ganzen Text.

Gruss
Nach oben
Fox Mulder Private Nachricht senden
Nexus

pr


: 22.01.2004
: 107
: (DE|NRW|OWL)


: 03.02.2005, 11:17    : php: Links extrahieren und umschreiben Antworten mit Zitat

Hi,

Da ich alle Attribute vom Text haben will, mach ich es so:

Code:

  function getAllLinksInHTML($text) {
   
      preg_match_all('#<a(.+)>(.+)</a>#ismU',$text,$regs);
      
      $links = array();
      
      for($i=0;$i<count($regs[0]);$i++) {
         
            preg_match_all('#(\w+)\s*=\s*"(.*)"#ismU',$regs[1][$i],$regs2);
         
         $attribs = array();
         
         for($ii=0;$ii<count($regs2[0]);$ii++) {
            $attribs[strtolower($regs2[1][$ii])] = $regs2[2][$ii];
         }
         
         $links[] = array(
            'text'      => $regs[2][$i],
            'attribs'   => $attribs,
         );
      }
   
      return $links;
   }


zurückgegeben wird ein Array. Erstes Element ist der Linktext/Grafik, zweites Element ist ein Array mit allen Attributen von <a>. Die Url findet sich dann im Element href.
Am besten mal ausprobieren und mit
Code:

print_r(getAllLinksInHTML(file_get_contents('datei.html')));


anschauen.

Gruß
Raphael
Nach oben
Nexus Private Nachricht senden
bull

pr


: 20.09.2003
: 2176
: Vèneto


: 03.02.2005, 13:23    : php: Links extrahieren und umschreiben Antworten mit Zitat

Danke erstmal. Sobald allerdings onmouseover oder ähnliches drin ist, ist das Ergebnis nicht mehr befriedigend.

Mein konkretes Problem ist:
Code:
 while (eregi("(<frame[^>]*src[[:blank:]]*=|href[[:blank:]]*=|http-equiv=['\"]refresh['\"] *content=['\"][0-9]+;[[:blank:]]*url[[:blank:]]*=|window[.]location[[:blank:]]*=|window[.]open[[:blank:]]*[(])[[:blank:]]*[\'\"]?((([a-z]{3,5}://)+(([.a-zA-Z0-9-])+(:[0-9]+)*))*($allowed_link_chars\[?$allowed_link_chars\]?$allowed_link_chars))(#[.a-zA-Z0-9-]*)?[\'\" ]?",$eval, $regs))
{
   $eval = str_replace($regs[0],"",$eval);
...
 

dahingehend zu modifizieren, daß auch noch der Ankertext ausgelesen wird (wer den zitierten Code kennt hat 100 Punkte). Habe mich gestern länger daran versucht.
Nach oben
bull Private Nachricht senden
Neues Thema eröffnen   Neue Antwort erstellen    ABAKUS Foren-Übersicht -> Webprogrammierung, Templatedesign & Microformats
Seite 1 von 1

 






Ähnliche Beiträge
Thema Forum Antworten
[B] gute Webkatalog-Links und mehr, Penguin-Konform [B] gute Webkatalog-Links und mehr, P... basisdenken Marktplatz: Dienstleistungen 0 21.05.2012, 10:43 [B] gute Webkatalog-Links und mehr, Penguin-Konform
zu viele Links auf die Startseite zu viele Links auf die Startseite swiat Google Forum 9 18.05.2012, 11:28 zu viele Links auf die Startseite
[B] SEO-Paket enthält Links verbessern Ranking und SERP [B] SEO-Paket enthält Links verbesser... jimeriks Marktplatz: Dienstleistungen 0 16.05.2012, 19:15 [B] SEO-Paket enthält Links verbessern Ranking und SERP
Suche Seiten mit natürlich gewachsenen Links Suche Seiten mit natürlich gewachsene... patrick15079 Domainpopularität / Linkpopularität / Links aufbauen 16 15.05.2012, 22:33 Suche Seiten mit natürlich gewachsenen Links
[B] Links zum Thema Energie, Technik, Mobilfunk [B] Links zum Thema Energie, Technik,... stang2k Marktplatz: Dienstleistungen 0 14.05.2012, 20:21 [B] Links zum Thema Energie, Technik, Mobilfunk
[B] Deutsche Content Links von Aged & Authority Blogs [B] Deutsche Content Links von Aged &... BlogPosts Marktplatz: Dienstleistungen 0 13.05.2012, 23:00 [B] Deutsche Content Links von Aged & Authority Blogs
Webmaster Tools zeigen alle Links an Webmaster Tools zeigen alle Links an david19 Google Forum 13 11.05.2012, 22:24 Webmaster Tools zeigen alle Links an

Suchmaschinenoptimierung | Latent Semantische Optimierung (LSO) | SEO Blog | SEO Online Tools | Suchmaschinenmarketing Angebot | Online Marketing

Impressum

Dieses SEO Forum läuft unter phpBB.


Sie lesen gerade: php: Links extrahieren und umschreiben