İşte ben şu anda kullanıyorum match_url fonksiyonu
function match_url($urls,$url) {
foreach($urls as $regex=>$args) {
$r = str_replace('/','\/',$regex);
preg_match("/$r/i",$url,$matches);
if(count($matches) > 0) {
$dispatch = array();
$args['args'] = array();
if(empty($args) && !empty($matches['controller'])) {
$dispatch['controller'] = $matches['controller'];
$dispatch['action'] = $matches['action'];
} else {
foreach($matches as $k=>$v) {
if(is_string($k)) {
$args['args'][$k] = $v;
}
}
$dispatch = $args;
}
return $dispatch;
}
}
}
İşte bazı örnek $ adresler vardır
$urls = array(
'articles/(?P<year>\d{4})' => array('controller'=>'articles','action'=>'show','name'=>'article_view'),
'admin/(?P<controller>[-\w]+)/(?P<action>[-\w]+)' => array(),
'(?P<controller>[-\w]+)/(?P<action>[-\w]+)' => array()
);
Aşağıdaki url articles/2010 gibi bir dizi döndürür:
Array
(
[controller] => articles
[action] => show
[name] => article_view
[args] => Array
(
[year] => 2010
)
)
Bekleniyor ama şimdi bana verilen url isim ve args bir url inşa sağlayacak bir işlev oluşturmak isteyen am gibi çalışır. Örneğin:
$name = "article_view";
$args = array("year"=>2010);
echo url_for($name,$args);
//should output articles/2010
Ben ile sorun yaşıyorum bölüm I geçti argümanlarla url regex gelen değişkenleri değiştirebilirsiniz nasıl sergiyi olduğunu.
Bunu yapmanın basit bir yöntem var mı?
Doğru yönde herhangi bir öneri veya işaretçiler olurdu.