php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.10.2006, 23:28  
Erfahrener Benutzer
 
Registriert seit: 05.04.2005
Beiträge: 1.333
Freeaak ist zur Zeit noch ein unbeschriebenes Blatt
Standard Linkurls mit regex erkennen

Hallo!
Ich bastele eine Methode, die Links aus Webseiten ausliest. Um das weiterzuverarbeiten sollen alle relativen Links in absolute umgewandelt werden. Das funktioniert auch soweit, ich hab nur ein problem:
Wenn bei Links keine " " darum sind, dann werden sie nicht genommen. Wenn ich das mit den " " weglassen würde, bestände die Gefahr, dass andere Attribute, wie title oder onclick des a-tags dabeikommen, die hinter dem href=blaaaa stehen. Wie muss ich den regulären Ausdruck dazu ändern?

Quelltext:
PHP-Code:
        function getContent()
    {
        return 
file($this->url);
    }
    
    function 
getLinks()
    {
        
preg_match_all("/<a[^>]+href(.*)>(.*)<\/a>/U",implode("\n",$this->getContent()),$sp);
        
$links $sp[0];
        
$linksneu = array();
        foreach(
$links as $link)
        {
            
$linkurl preg_replace("/<.*href=\"(.*)\">.*<\/a>/Ui","$1",$link);
            if(!
preg_match("/(.*):\/\/(.*)/Ui",$linkurl)) $linkurl $this->url.$linkurl;
            
array_push($linksneu,$linkurl);
        }
        return 
$linksneu;
    } 
Gruß Freeaak
Freeaak ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 02.10.2006, 00:00  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Das kommt drauf an. aber normalerweise müssen ja entweder Parameter in Stringbegrenzern stehen oder aber sollten zumindest ohne Leerzeichen, d.h. url codiert sein sein
Also vielleicht sowas (nicht getestet aber so etwa)

<a\s+[^>]+href\s*=\s*(?:\"([^\"]+)\"|([^\s]+))[^>]*>(.*)<\/a>/Ui

Der andere Ausdruck erkennt übrigens keine <a> tags mit weiteren Parametern hinterm href bzw. viel zu viel
--n
nikosch ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Array sortieren mit regex Lupi PHP Tipps 2008 3 21.07.2008 15:17
Regex: Auslesen der Meta-Tags einer Webseite Sucheingrenzung pepe24 PHP Tipps 2008 12 31.05.2008 15:41
2 Regex in PHP kompatible Syntax übersetzen NoiZy PHP-Fortgeschrittene 6 07.04.2008 09:04
Regex Link Problem Broadcast PHP Tipps 2008 2 29.02.2008 16:30
Gierig/nicht gieriger Regex Papst PHP Tipps 2008 22 02.12.2007 20:15
[gelöst :D ] regex tuts nur einmal pro zeile notyyy PHP Tipps 2008 17 24.09.2007 15:40
RegEx für Mail-Adresse (Bitte prüfen!) vollkommenegal PHP Tipps 2006 13 20.11.2006 20:02
Regex löscht alle Zeilenumbrüche. Anduril PHP Tipps 2006 3 16.10.2006 22:36
habe ein paar fragen zu REGEX imported_kremser PHP Tipps 2006 11 31.01.2006 15:30
RegEx findet Stringvorkommen nicht PHP Tipps 2007 6 08.12.2005 21:52
Suche ein bestimmtes Regex Chr!s PHP Tipps 2005 5 21.05.2005 12:01
Anker Links parsen (RegEx) Spyker PHP Tipps 2005 1 31.01.2005 12:01
Regex für attribute in quelltexten robo47 PHP Tipps 2005 6 27.01.2005 18:29
[Erledigt] Regex für selektives Replacement PHP-Fortgeschrittene 2 25.12.2004 15:57
Problem mit regex PHP Tipps 2004 1 09.09.2004 10:00

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
link erkenn regex, regex attribute php, php links erkennen, regex link identifizieren, regex um links zu erkennen, url erkennen regex funktion aufrufen php, php regex link erkenne, regex erkennung link, regular expression alle links, regex url www, link erkennen regex, php regex link erkennen, regex linkurl, regular expressions link erkennen php, php link regexp

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:13 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.