Seite 1 von 1

RegEx: wie auskommentieren bei zahlenstring nach "\\1&q

Verfasst: 07.12.2009, 23:45
von gnark
ich will sowas machen:

Code: Alles auswählen

$ersetzung = "\\1". $id . "\\3";
Problem: die $id ist z.B. "43523",
also ergibt sich "\\143523\\3", was natürlich blödsinn ist

wie kann ich die $id vom \\1 seperieren?

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Verfasst: 07.12.2009, 23:51
von DanielS
Ehm:
[ ] Du gehst davon aus, dass wir den restlichen Code kennen
?

Verfasst: 07.12.2009, 23:57
von gnark
Dachte es wäre offensichtlich, dass es sich um eine reguläre Expression handelt.
Hab mal den Titel geändert.
hmm, vielleicht ist das mod_rewrite doch nicht das richtige Forum hierfür.
Sorry.
Bin schon etwas müde und dachte, mod_rewrite=regEx

Verfasst: 07.12.2009, 23:57
von SloMo
Versuch mal "${1}" statt "\\1".

Verfasst: 08.12.2009, 10:47
von gnark
${1} hat nicht funktioniert -> Notice: Undefined variable: 1

hier mal etwas mehr code:

Code: Alles auswählen

                  	$suchmuster = "/(id=)([0-9]{3,10})(\"|&)/si";
                    $ersetzung = "\\1". $id . "\\3";
                    $banner = preg_replace($suchmuster, $ersetzung, $banner);
Funktioniert an sich super, nur ist das problem, dass php verwirrt wird, weil aus \\1 dann eben \\1423323 wird, wobei 423323 einfach nur der string ist, der ausgegeben werden soll, php denkt aber, \\14 sei die variable 14 oder so

Verfasst: 08.12.2009, 11:27
von SloMo
Die Warnung kommt von PHP, weil Du " (doppelte Anführungszeichen) benutzt und PHP den String deshalb zu parsen versucht.

Du musst das $ escapen, so wie wie es in der Doku von preg_replace steht (RTFM). Also: "\${1}" oder '${1}'.

Verfasst: 08.12.2009, 11:37
von gnark
jo danke, hat geklappt.

bzgl. RTFM: ist halt schwer, wegen jedem problem immer gleich die komplette doku zu lesen :)

Verfasst: 08.12.2009, 11:45
von SloMo
Die komplette Doku? Das steht ganz oben, direkt in der Beschreibung des Parameters. Dauert keine Minute, das rauszufinden. :lol:

Die PHP-Doku ist wirklich gut, da sollte man immer mal ein bisschen drin stöbern. Allein um zu wissen, was möglich ist, und um die Details zu kennen. Sonst baut man ohne es zu ahnen viele kleine Bugs ein und es fällt einem irgendwann alles wie ein Kartenhaus zusammen.