Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

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

Mehrere Domains, Domain-Umzug, neue Dateinamen, 301/302
Neues Thema Antworten
gnark
PostRank 8
PostRank 8
Beiträge: 920
Registriert: 23.01.2009, 15:12

Beitrag von gnark » 07.12.2009, 23:45

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?
Zuletzt geändert von gnark am 07.12.2009, 23:55, insgesamt 1-mal geändert.
https://das-dass.de ... übrigens: es heisst sitewide mit "t"

Anzeige von ABAKUS

von Anzeige von ABAKUS »

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

Jetzt anfragen: 0511 / 300325-0.


DanielS
PostRank 9
PostRank 9
Beiträge: 1179
Registriert: 03.08.2008, 08:45

Beitrag von DanielS » 07.12.2009, 23:51

Ehm:
[ ] Du gehst davon aus, dass wir den restlichen Code kennen
?

gnark
PostRank 8
PostRank 8
Beiträge: 920
Registriert: 23.01.2009, 15:12

Beitrag von gnark » 07.12.2009, 23:57

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
https://das-dass.de ... übrigens: es heisst sitewide mit "t"

SloMo
PostRank 10
PostRank 10
Beiträge: 4880
Registriert: 04.01.2005, 18:26

Beitrag von SloMo » 07.12.2009, 23:57

Versuch mal "${1}" statt "\\1".

gnark
PostRank 8
PostRank 8
Beiträge: 920
Registriert: 23.01.2009, 15:12

Beitrag von gnark » 08.12.2009, 10:47

${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
https://das-dass.de ... übrigens: es heisst sitewide mit "t"

SloMo
PostRank 10
PostRank 10
Beiträge: 4880
Registriert: 04.01.2005, 18:26

Beitrag von SloMo » 08.12.2009, 11:27

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}'.

gnark
PostRank 8
PostRank 8
Beiträge: 920
Registriert: 23.01.2009, 15:12

Beitrag von gnark » 08.12.2009, 11:37

jo danke, hat geklappt.

bzgl. RTFM: ist halt schwer, wegen jedem problem immer gleich die komplette doku zu lesen :)
https://das-dass.de ... übrigens: es heisst sitewide mit "t"

SloMo
PostRank 10
PostRank 10
Beiträge: 4880
Registriert: 04.01.2005, 18:26

Beitrag von SloMo » 08.12.2009, 11:45

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.

Antworten