PHP Link analysieren - Reguläre Ausdrücke

Hallo !

Ich möchte ein kleines Skript basteln und verzweifle irgendwie an der Link Analyse.

Nehmen wir mal an, ich möchte folgenden Link analysieren.

HTML:
...viel html...
<a href="http://www.domain.tld">Mein Link</a>

Wie könnte ich nun rausfiltern, wie der Ankertext ist und ob eventuell ein title Tag und ein nofollow in dem Link zu finden ist. Jemand eine Idee ?
 
Ich würde dir Regular Expressions empfehlen.
Mit php bsp so.

In perl pseudocode in etwa so (gerade kp. wie man am besten alle Links rausfummelt):

Code:
$siteContent=VIEL_HTML_MIT_LINK...;
Fuer alle Links in $siteContent als $link{
  if( $link=~ m/<a.*rel="nofollow".*>(.*)<\/a>/i ){
    print "$1 nofollow\n";
  }else {
    print "Do whatever mit dem Link\n";
  }
}
 
Asche über mein Haupt dass ich nicht davon abgeraten habe.
Nach dem Lesen des Artikels muss ich nun auch sagen regex sind zu parsen von HTML Dateien, welche ggf. kein valides HTML sind, nicht wirklich gut geignet.

Zu meiner Wissenserweiterung: Wie würde man so etwas denn in schön realisieren ohne die Kräfte des Bösen heraufzubeschwören ?
 
Wenn du syntaktisch valides XML voraussetzen kannst, nimm einen XML-Parser. RegExen sind für diesen Zweck reichlich umständlich. Das kann schon daran scheitern, dass du nicht weißt, ob das rel="nofollow" vor dem href="..." kommt oder danach...
 
Zurück
Oben