Ga naar inhoud

Regular Expressions


Aanbevolen berichten

Ik wil graag met preg_replace() een CSS class toevoegen aan elke hyperlink welke 'rel="externe-link"' bevat.. Dus; [code:1:c40b9b1716]<a href="http;//www.computertotaal.nl" rel="externe-link">Computer Totaal!</a>[/code:1:c40b9b1716] Moet worden: [code:1:c40b9b1716]<a href="http;//www.computertotaal.nl" rel="externe-link" class="link-extern">Computer Totaal!</a>[/code:1:c40b9b1716] Het probleem is echter dat ik de ballen verstand heb van reguliere expressie's.. Wie o wie kan mij vertellen hoe ik zoiets in de preg_replace() douw???
Link naar reactie
[quote:325fc56411]Kun je hiervoor niet veel simpeler een str_replace voor gebruiken? Je vervangt gewoon alle instanties van 'rel="externe-link"' met 'rel="externe-link" class="link-extern"'.[/quote:325fc56411] Daar had ik ook al over nagedacht, maar het schijnt dat regular expressions sneller zijn? [code:1:325fc56411]a[rel="externe-link"] { .... }[/code:1:325fc56411] Hier ben ik ook al mee bezig geweest, maar volgens mij is dat niet cross-browser.. Als ik me niet vergis zijn dat CSS 3 selectors (corrigeer me alsjeblieft als ik geen gelijk heb).. Want, als dat gewerkt had in IE 5.5+ en 6 had ik ook gewoon het volgende kunnen doen: [code:1:325fc56411] a[href^="http://"] { background: transparent url(afbeeldingen/link.gif) 100% 50% no-repeat; padding-right: 10px; } a[href^="http://www.mijn-website.nl/"] { background: inherit; padding-right: 0; } [/code:1:325fc56411] Helaas werkt bovenstaande enkel in Mozilla browsers en Opera, dus wilde ik hetzelfde bereiken door er automatisch een class aan te hangen.. Maar misschien zijn er andere ideeen hoe ik dit beter kan oplossen?
Link naar reactie
[quote:28dfbddbf4="Stefan Nagtegaal"]Daar had ik ook al over nagedacht, maar het schijnt dat regular expressions sneller zijn?[/quote:28dfbddbf4]Nee, probeer deze altijd te vermijden, tenzij je ze echt nodig hebt. Als het met een andere functie kan oplossen in PHP, is dat altijd beter (en anders doe je even wat snelheidstesten, dan weet je het helemaal zeker). [quote:28dfbddbf4="Stefan Nagtegaal"]Als ik me niet vergis zijn dat CSS 3 selectors (corrigeer me alsjeblieft als ik geen gelijk heb)..[/quote:28dfbddbf4]Staat al in de CSS2 specs (zie [url=http://www.w3.org/TR/CSS2/selector.html#attribute-selectors]attribute-selectors[/url]) ;). [quote:28dfbddbf4="Stefan Nagtegaal"]Want, als dat gewerkt had in IE 5.5+ en 6...[/quote:28dfbddbf4]O ja, dat werkt inderdaad niet in IE. [quote:28dfbddbf4="Stefan Nagtegaal"]Maar misschien zijn er andere ideeen hoe ik dit beter kan oplossen?[/quote:28dfbddbf4]Je zou het ook met JavaScript (onPageLoad) kunnen doen. Je zoekt via DOM de links met rel-attribute op en zet er die class-atrribute bij. -Rémy
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...