Ben parametrelerin bir diziye kullanmak istediğiniz url'lerin tür ayrıştırmak için bu kodu yazdım. Bu, her sayfada tamamen farklı şekillerde parametreleri kullanabilirsiniz, yani esnek. Sen o önerdi Joel L gibi bir isteği işleyicisi kullanmak gerekecektir.
Old-school $ _GET sorgu dizeleri ihtimale anlaşılması için de izin verir, ve aynı zamanda kontrol komut dosyası yolu ziyade tüm url ile birlikte, size beklediğiniz gibi davranmaya $ _SERVER ['PHP_SELF'] yazar Tüm parametreler.
Ben hızlı bir şekilde tek başına işlevi olarak kullanılmak için düzenlenmiş, bu yüzden yazım hataları dikkat. Ayrıca, bu kod geliştirmek için herhangi bir öneri bekliyoruz.
<?php
function parseRequestUrl($http_server = 'http://example.com'){
$request = $_SERVER['REQUEST_URI'];
$request = explode('?', $request);
if (isset($request[1])){
$get_data = $request[1];
parse_str($get_data, $_GET);
}
$request = $request[0];
$url_data = array_values(array_filter(explode('/', $request)));
$url_level = substr_count($http_server, '/', 8);
foreach($url_data as $key => $val){
if($key>$url_level){
$parameter[] = $val;
} else if ($key==$url_level){ // controller is also stored at $this->parameter[0]
$parameter[] = $controller = $val;
}
}
if(!isset($controller) || !$controller){
$parameter[0] = $controller = 'index';
}
$_SERVER['PHP_SELF'] = $http_server.'/'.$controller;
return $parameter;
}
?>
$ Http_server için sitenizin etki alanı kullanın.
So if you use this on the request of:
http://site.com/news/category/arts/page/5
Aşağıdaki değişken geri alırsınız:
$parameter[0] => 'news'
$parameter[1] => 'category'
$parameter[2] => 'arts'
$parameter[3] => 'page'
$parameter[4] => '5'