Bu teknik tarihli olabilir, ve ben kuşkusuz uzun bir süre kullanmış olmama rağmen bunları kullanmak zorunda olduğunuz bir durum, URI işleme.
Kullanıcının biz formatta script URI çekmek istiyorum diyelim domain.tld/controller/action/parameter/s
. Biz şu kullanarak betik adını kaldırabilirsiniz:
$uri_string = str_replace($_SERVER['SCRIPT_NAME'], '', $_SERVER['REQUEST_URI']);
Biz yolu ayırıcısını '/' kullanarak dize patlamaya zorunda gidiyoruz bu gelen kontrolör, eylem ve parametre değerleri ayıklamak için. Biz bir lider ya da sınırlayıcı sondaki varsa Ancak, biz patlama üzerine boş bir dizi değerlere sahip olacak, bu yüzden dize başında ve sonunda gelenler Döşeme olmalıdır:
$uri_string = trim($uri_string, '/');
Biz şimdi bir diziye yolunu patlayabilir:
$uri_data = explode('/', $uri_string);
$uri_data[0]
şimdi bizim denetleyicisi adını, $uri_data[1]
eylem adını içeren ve eylem yöntemi iletilmesi gereken parametreler olduğunu ötesinde dizi değerlerini içerir.
$controller_name = $uri_data[0];
$action_name = $uri_data[1];
Yani, şimdi bu isimleri var ki, biz bir kaç şey için kullanabilirsiniz. Eğer site köküne çok özel bir dizin nispetle denetleyicileri tutarsanız, require_once
controller sınıfı için bu bilgileri kullanabilirsiniz. Bu noktada, bunu örneğini ve değişken değişkenleri kullanarak çağırabilirsiniz:
$controller = new $controller_name();
$controller->{$action_name}(); // Or pass parameters if they exist
Orada bu yaklaşımda için dışarı bakmak için güvenlik FRİKİKLERİNDEN bir yeri vardır, ama bu değişken değişkenler faydalanmak için gördüğüm bir yoludur.
DISCLAIMER: Ben senin aslında bu kodu kullanabilirsiniz demiyorum.