Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: Regular Expression Links von href="" auslesen

  1. #1
    Azubi(ne)
    Registriert seit
    22.05.2009
    Beiträge
    62
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Regular Expression Links von href="" auslesen

    Hallo,
    ich habe ein eigentlich funktionierendes Pattern geschrieben, welches mir jedoch in der Praxis Probleme bereitet.

    HTML-Code:
    <a.*href=(?:\"|\')(.*?)(?:\"|#|\'|mailto:).*>
    Hier sollte im Array eigentlich immer nur folgendes stehen:

    Code:
    Array
    (
        [0] => Array
            (
                [0] => <a href="link.html">
                [1] => link.html
            )
    
        [1] => Array
            (
                [0] => <a class="link" href="link.html" onClick="test(123)">
                [1] => link.html
            )
    }
    Leider sieht es bei mir zum Teil so aus:

    Code:
    Array
    (
        [0] => Array
            (
                [0] => <a href="link.html">><span class="div-top-menu"></span></li><li><a title="Newsletter" href="service/newsletter.html" onfocus="blurLink(this);">Newsletter</a>...
                [1] => link.html
            )
    
        [1] => Array
            (
                [0] => <a class="link" href="link.html" onClick="test(123)">
                [1] => link.html
            )
    }
    Demnach geht also der Link service/newsletter.html verloren, was sicherlich durch das Pattern .* hervorgerufen wird. Nur wie kann man das ändern?

    Vielen Dank
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Shogun Avatar von DarkSyranus
    Registriert seit
    28.03.2006
    Ort
    ::1/128
    Alter
    25
    Beiträge
    3.446
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: Regular Expression Links von href="" auslesen

    Versuch mal folgendes Pattern:

    Code:
    <a[^>]*href=(?:\"|\')([^>]*)(?:\"|#|\'|mailto:)[^>]*>

  3. #3
    Forum Guru
    Registriert seit
    13.01.2005
    Ort
    Schweiz
    Beiträge
    5.240
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Regular Expression Links von href="" auslesen

    Versuchs mal mit preg_match_all() und schau dir bei regex greedy/ungreedy an.

  4. #4
    Azubi(ne)
    Themenstarter

    Registriert seit
    22.05.2009
    Beiträge
    62
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Regular Expression Links von href="" auslesen

    Zitat Zitat von DarkSyranus Beitrag anzeigen
    Versuch mal folgendes Pattern:

    Code:
    <a[^>]*href=(?:\"|\')([^>]*)(?:\"|#|\'|mailto:)[^>]*>
    Das hat zwar nun die Links drin, aber ich verstehe nicht was [^>] macht und es wird zudem oft noch mehr mitgenommen:

    Code:
    [22] => Array
        (
            [0] => <a href="seite/einleitung.html" onfocus="blurLink(this);">
            [1] => seite/einleitung.html" onfocus="blurLink(this); <= overhead
    [26] => Array
        (
            [0] => <a class="mail" title="&Ouml;ffnet ein Fenster zum Versenden einer E-Mail" href="mailto:info@trest.de">
            [1] => mailto:info@trest.de <= mailto soll nicht rein
    Zitat Zitat von phore Beitrag anzeigen
    Versuchs mal mit preg_match_all() und schau dir bei regex greedy/ungreedy an.
    Ich habe dazu nur das hier gefunden, womit ich was anfangen konnte:
    http://www.exampledepot.com/egs/java...ex/Greedy.html
    Mit
    Code:
    <a.*href=(?:\"|\')(.*?)(?:\"|#|\'|mailto:).*?>
    geht es aber genausowenig.

  5. #5
    Shogun Avatar von DarkSyranus
    Registriert seit
    28.03.2006
    Ort
    ::1/128
    Alter
    25
    Beiträge
    3.446
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: Regular Expression Links von href="" auslesen

    Damm, hatte noch einen kleinen Denkfehler drin
    Probier mal folgendes Pattern.

    PHP-Code:
    preg_match_all('|<a\s+href=[\"\']([^\'\"]*)[\'\"]\s*>.*</a>|Ui'$source$targetPREG_SET_ORDER); 

  6. #6
    Azubi(ne)
    Themenstarter

    Registriert seit
    22.05.2009
    Beiträge
    62
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Regular Expression Links von href="" auslesen

    Zitat Zitat von DarkSyranus Beitrag anzeigen
    Damm, hatte noch einen kleinen Denkfehler drin
    Probier mal folgendes Pattern.

    PHP-Code:
    preg_match_all('|<a\s+href=[\"\']([^\'\"]*)[\'\"]\s*>.*</a>|Ui'$source$targetPREG_SET_ORDER); 
    Gibt nur 1nen Link aus.

  7. #7
    Shogun Avatar von DarkSyranus
    Registriert seit
    28.03.2006
    Ort
    ::1/128
    Alter
    25
    Beiträge
    3.446
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: Regular Expression Links von href="" auslesen

    Dann zeig mal bitte den Rest deines Skriptes bzw. die Links O.o
    Hab das grad mal beim FH Quelltext probiert, und da geht es wunderbar ...

  8. #8
    Azubi(ne)
    Themenstarter

    Registriert seit
    22.05.2009
    Beiträge
    62
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Regular Expression Links von href="" auslesen

    Zitat Zitat von DarkSyranus Beitrag anzeigen
    Dann zeig mal bitte den Rest deines Skriptes bzw. die Links O.o
    Hab das grad mal beim FH Quelltext probiert, und da geht es wunderbar ...
    PHP-Code:
    <?php
    $source 
    '<a href="kontakt/allgemein.html" onfocus="blurLink(this);">Kontakt</a>';
    preg_match_all('|<a\s+href=[\"\']([^\'\"]*)[\'\"]\s*>.*</a>|Ui'$source$targetPREG_SET_ORDER);
    print_r($target);
    ?>
    Leeres Array... was macht das |Ui denn?

  9. #9
    Shogun Avatar von DarkSyranus
    Registriert seit
    28.03.2006
    Ort
    ::1/128
    Alter
    25
    Beiträge
    3.446
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: Regular Expression Links von href="" auslesen

    Meine Güte, ich kann heut irgendwie nicht mehr klar denken ~.+
    Sag bescheid, falls ich noch was vergessen habe ...

    Code:
    |<a.*\s+href=[\"\']([^\'\"]*)[\'\"].*>.*</a>|Ui
    Das U und das i am Schluss sind Modifikatoren.

  10. #10
    Thonixx
    Gast

    Standard AW: Regular Expression Links von href="" auslesen

    Da auf mein Thread niemand so schlau antworten konnte, frag ich hier grad mal rein, da es zum Thema passt:

    Wie müsste das RegEx aussehen, wenn man NUR die Links ersetzen müsste (wenns ginge, irgendwie in einem Schritt per preg_replace(), oder so...).
    Das heisst so:

    <a href="?url=xyz">....

    nach so:

    <a href="http://www.xyz.yz/?hello=http://iuoi.com/?url=xyz">...

Ähnliche Themen

  1. wie kann man links mit id="" definieren?
    Von dieRaute im Forum HTML & CSS Forum
    Antworten: 3
    Letzter Beitrag: 27.08.2008, 22:29
  2. href="#name"+ target = geht nich
    Von Raziel im Forum HTML & CSS Forum
    Antworten: 5
    Letzter Beitrag: 17.06.2007, 16:01
  3. Popup-"überöffnung" des nächsten Links
    Von Quadroman im Forum HTML & CSS Forum
    Antworten: 0
    Letzter Beitrag: 09.03.2006, 21:08
  4. method="post" für normale Links
    Von Heiko im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 7
    Letzter Beitrag: 21.10.2005, 00:19
  5. Links durch <a href="...."> ersetzen
    Von nuessler im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 18.04.2005, 22:14

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •