anoniem Geplaatst: 20 mei 2004 Delen Geplaatst: 20 mei 2004 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??? Quote Link naar reactie
anoniem Geplaatst: 20 mei 2004 Auteur Delen Geplaatst: 20 mei 2004 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 Link naar reactie
anoniem Geplaatst: 20 mei 2004 Auteur Delen Geplaatst: 20 mei 2004 Waarom zou je een class-attribuut moeten toevoegen in je link? Met CSS kun je deze link al opmaken. [code:1:980c18f290]a[rel="externe-link"] { .... }[/code:1:980c18f290] -Rémy Quote Link naar reactie
anoniem Geplaatst: 20 mei 2004 Auteur Delen Geplaatst: 20 mei 2004 [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? Quote Link naar reactie
anoniem Geplaatst: 20 mei 2004 Auteur Delen Geplaatst: 20 mei 2004 [quote:d576974604="Stefan Nagtegaal"]Daar had ik ook al over nagedacht, maar het schijnt dat regular expressions sneller zijn?[/quote:d576974604]Volgens mij niet. Regular expressions moeten namelijk nog verwerkt worden voor ze op de text losgelaten kunnen worden... Quote Link naar reactie
anoniem Geplaatst: 21 mei 2004 Auteur Delen Geplaatst: 21 mei 2004 [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 Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen