Regexp-Bedingung: Anchor's HREF-Tag
nina
- php
-1 Felix Riesterer1 EisFuX
hi!
bin mir sicher, dass sich da schon genug den kopf zerbrochen haben und es das schon gibt. aber ich finde nichts im web :(
und zwar soll, wenn in nem href tag eines links/anchors das zeichen ~ durch einen string ersetzt werden. doch wie muss der regexp lauten?
danke
Liebe nina,
lerne doch Regular Expressions! Es lohnt sich sowas von wirklich!!! Ich habe es mit http://www.regular-expressions.info/ gelernt und wirklich nie bereut!
bin mir sicher, dass sich da schon genug den kopf zerbrochen haben und es das schon gibt.
SELF, Mädchen!
und zwar soll, wenn in nem href tag eines links/anchors das zeichen ~ durch einen string ersetzt werden. doch wie muss der regexp lauten?
Braucht es dazu wirklich regexp? Tut es da nicht eine einfache "string replace"-Methode/Funktion? - Naja, wenn die Tilde ("~") auch an anderer Stelle vorkommen kann, dann sicherlich _mit_ regexp, da hättest Du recht.
Liebe Grüße aus Ellwangen,
Felix Riesterer.
hi nina,
bin mir sicher, dass sich da schon genug den kopf zerbrochen haben und es das schon gibt. aber ich finde nichts im web :(
und zwar soll, wenn in nem href tag eines links/anchors das zeichen ~ durch einen string ersetzt werden. doch wie muss der regexp lauten?
Wenn der "Link" so aussieht:
<a ... href="~" ...>...</a>
Dann klappt es hiermit fast immer:
$link = '... <a href="~" class="eine_klasse">ein Link</a> ...';
$ersatz = 'irgendwas';
$neu = preg_replace(
'/(\<a[^\>]+href\=)([\'\"])(\~)(\2)([^\>]*\>)/',
'$1$2'.$ersatz.'$4$5',
$link
);
Der RegEx aufgedröselt:
1. (<a[^>]+href=) ... alles, was vor dem href-Attribut kommt
2. (['"]) ... die linken Begrenzungszeichen für den Attributwert
3. (~) ... die Tilde
4. (\2) ... die rechten Begrenzungszeichen für den Attributwert
5. ([^>]*>) ... alles, was nach dem href-Attribut kommt
[^>] ... ein beliebiges Zeichen außer dem "Größer-Als"
\2 ... eine Rückreferenz ("back reference"), die genau das gleiche enthalten muss, wie das Muster, das in Klammer 2 gefunden wurde
PCRE-Suchmuster-Syntax
PCRE-Suchmuster-Modifikatoren
Was mir schon oft geholfen hat, ist die "Original-Anleitung" zu den PCRE:
http://www.pcre.org/pcre.txt
MffG
EisFuX