Such regulären Ausdruck für urlManager-Regeln

hallo zusammen,

und zwar suche ich einen regulären ausdruck, welcher mir bei der folgenden url-"weiterleitung" hilft:


'urlManager'=>array(

            'urlFormat'=>'path',

            'showScriptName' => false,

            'rules'=>array(

            	'seite/<titel:[A-Za-z0-9._:,;<>|\'#~]*>' => 'seite/list',

            ),

        ),

und zwar habe ich vor, dass ich zb. die folgende url im browser habe: http://localhost/project/seite/Testbeitrag

erreichbar soll die seite über http://localhost/project/ sein. nun brauche aber ich eine entsprechende regel, die mir einen string in den $_GET-parameter rein parst. für integer-werte geht das ja irgendwie über \d+. nur wie mache ich das allgemein für strings?

hierzu noch kurz etwas: der user kann so ziemlich alle zeichen eingeben, die er will. darauf wende ich ein htmlentities an und speichere beide werte separat in die datenbank. der encodete string wird dann für den websiten-aufruf in der url verwendet. somit schließt das die möglichen zeichen noch etwas ein. ich hoffe ihr könnt mir hierbei helfen!

danke schon mal.

Also $_GET[‘titel’] sollte ja bereits funktionieren. Weitere Parameter kannst du einfach an die Rule anhängen:




'seite/<titel:[A-Za-z0-9._:,;<>|\'#~]*>' => 'seite/list/test/1'



$_GET[‘test’] ist nun 1. Hoffe das ist was du gesucht hast. ???

\d+ ist btw. ein regulärer Ausdruck der eine Zahl verlangt. In deinem Fall, wo ja alle Zeichen erlaubt sind, kannst du auch einfach ein <titel:.> oder noch besser <titel:.+> machen. (. = 0 oder mehr beliebige Zeichen, .+ = 1 oder mehr beliebige Zeichen)

dein letzter satz ist genau das was ich gesucht habe ;) echt klasse! danke dir! bin nämlich (noch) nicht wirklich fit im bezug auf reguläre ausdrücke schäm