[pmwiki-users-de] Automatic wikitrails generation for RSS possible?
Michael Engelke
PmWiki at MEngelke.de
Do Jun 5 03:05:40 CDT 2008
Thomas Tempelmann schrieb:
> Nun würde ich gern die regex so ändern, daß sie alle üblichen Page-Namen
> "matcht" und dann den Match in der Ausgabe verwendet. Also probierte ich
> das:
>
> if(preg_match('/^(Main[\.|\/]([a-zA-Z0-9]+))$/',$pagename, $matches)) {
> $RecentChangesFmt['Main.Foobar'] = '* $matches[1]';
> }
>
> Hier versuche ich, mir die Matches von der regex geben zu lassen und gebe
> sie dann probehalber in der Change-Zeile aus. Leider bekomme ich statt einem
> Match-Text nur "$matches[1]" direkt angezeigt. Anfängerfehler Ich muß
> zugeben, daß ich nicht so fit in PHP bin.?
>
Das liegt an den Anführungszeichen:
'$foobar' ergibt genau den Text $foobar
"$foobar" ergibt den Inhalt der Variable $foobar
Also entweder schreibst Du '* '.$matches[1] oder "* $matches[1]"
> Weiterhin: Wie bekomme ich den Match-String so hin, daß er zwar a-z und auch
> "-" annimmt, aber nicht "-RecentChanges"? Ich kenne nur "[^ ... ]" als
> non-match, aber das geht ja nur bei einzelnen Zeichen, nicht?
>
Das macht man am besten mit Look-around! (Kann man in der Wikipedia
unter Regex nachlesen)
Hier die korrigierte Beispiellösung:
if(preg_match('/^(Main[\.|\/][\w-]+)(?<!-RecentChanges)$/',$pagename,
$matches))
$RecentChangesFmt['Main.Foobar'] = "* [[$matches[1]]]";
--
eMail: PmWiki at MEngelke.de ICQ: 267544462 Homepage: wiki.MEngelke.de