本文整理汇总了PHP中router::remove_url方法的典型用法代码示例。如果您正苦于以下问题:PHP router::remove_url方法的具体用法?PHP router::remove_url怎么用?PHP router::remove_url使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类router
的用法示例。
在下文中一共展示了router::remove_url方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: __construct
public function __construct($_clean_url = null)
{
self::$repository = repository;
$path = preg_replace("/^\\.\\//", "/", '/');
$clean_url = $_clean_url !== null ? $_clean_url : $_SERVER['REQUEST_URI'];
if (preg_match("#0x#", $clean_url)) {
// error
}
$clean_url = preg_replace("#0x#Ui", "", $clean_url);
$clean_url = preg_replace("#^https?://{$_SERVER['HTTP_HOST']}\\/#", '', $clean_url);
$clean_url = preg_replace("#^{$path}#", '', $clean_url);
$clean_url = urldecode($clean_url);
preg_match("/^([^?]*)(\\?.*)?\$/", $clean_url, $url);
self::$real_url_string = self::$url_string = $url[1];
self::$real_url_array = self::$url_array = preg_split("[\\/]", preg_replace("/^\\/|\\/\$/", '', $url[1]), -1, PREG_SPLIT_NO_EMPTY);
// HTTP_HOST is not secure and attacker can change it
$domain = $_SERVER['HTTP_HOST'];
self::$domain = preg_split("[\\.]", $domain);
self::$sub_domain = self::$domain;
array_pop(self::$sub_domain);
array_pop(self::$sub_domain);
if (isset(self::$real_url_array[0]) && self::$real_url_array[0] == 'home' || isset(self::$real_url_array[1]) && self::$real_url_array[1] == 'home') {
\lib\error::page("home");
}
/**
* user want control panel or CMS
*/
if (defined('CMS') && constant('CMS')) {
$myCP = constant('CMS') === true ? 'cp' : constant('CMS');
router::set_storage('CMS', $myCP);
} else {
router::set_storage('CMS', 'cp');
}
/**
* before router
*/
if (self::$auto_repository) {
// first get subdomain and if not exist get first url part as mysub
$mysub = router::get_sub_domain();
if (!$mysub) {
$mysub = router::get_url(0);
router::$sub_is_fake = true;
// router::$sub_is_fake = $mysub? true: false;
// router::set_storage('language', router::get_storage('defaultLanguage') );
}
if ($mysub) {
// automatically set repository if folder of it exist
$myaddons = array();
$mysub_real = $mysub;
$myloc = null;
$mysub_valid = null;
// check for account with specefic name
if (\lib\router::get_storage('CMS')) {
$myaddons[\lib\router::get_storage('CMS')] = 'cp';
$myaddons['account'] = 'account';
}
// check this sub is exist in our data or not
if (array_key_exists($mysub, $myaddons)) {
$mysub = $myaddons[$mysub];
$mysub_valid = true;
}
// set repository name
$myrep = 'content_' . $mysub;
// check content_aaa folder is exist in project or saloos addons folder
if (is_dir(root . $myrep)) {
$myloc = false;
} elseif ($mysub_valid && is_dir(addons . $myrep)) {
$myloc = addons;
}
// if folder exist
if (!is_null($myloc)) {
// if url is fake, show it like subdomain and remove from url
if (router::$sub_is_fake) {
router::remove_url($mysub_real);
router::set_sub_domain($mysub_real);
}
// set repository to this folder
$myparam = array($myrep);
if ($myloc) {
array_push($myparam, $myloc);
}
// call function and pass param value to it
router::set_repository(...$myparam);
}
}
}
if (self::$auto_api) {
// automatically allow api, if you wan't to desable it, only set a value
$route = new router\route("/^api([^\\/]*)/", function ($reg) {
router::remove_url($reg->url);
router::set_storage('api', true);
});
}
if (class_exists('\\cls\\route')) {
$router = new \cls\route();
$router->main = $this;
if (method_exists($router, "_before")) {
$router->_before();
}
}
//.........这里部分代码省略.........