好的,我有$_SERVER['REQUEST_URI']
让我们说它给了我们一个网址
http://localhost/controller/method
我尝试了类似
的内容explode('/',$_SERVER['REQUEST_URI'])
它给了我们像
array
0 => string '' (length=0)
1 => string 'controller' (length=10)
2 => string 'method' (length=6)
获取控制器或方法的最佳方法是什么?或删除数组中的0? (第一阵)?
所以它就像
$controller = 'controller';
$method = 'method';
来自上面的输入。 可能关于列表?仍然没有使用list()的线索。
编辑heres到目前为止我做了什么
$this->url = str_replace(config('foldertoscript'), NULL, $_SERVER['REQUEST_URI']);
$hello = explode('/',$this->url);var_dump($hello);
array_shift($hello);
list($controller,$method) = $hello;
var_dump($hello,$controller);
在课堂上
感谢您的关注。
Adam Ramadhan
答案 0 :(得分:0)
要删除数组的第一个元素,可以使用array_shift()
。
$_SERVER['REQUEST_URI']
为您提供没有“http://www.yoursite.com”的网址。
你可以使用这样的东西
<?php
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
echo curPageURL();
?>
希望这有帮助。
答案 1 :(得分:0)
使用array_shift删除第一个数组项。
http://php.net/manual/en/function.array-shift.php
示例:
$your_array = array_shift($your_array);
$controller = $your_array[0];
$method = $your_array[1];
答案 2 :(得分:0)
对于同样的问题,我使用url_rewriting。
我有一条规则说^([a-zA-Z0-0 -_ \ /。] +)$ index.php?url = $ 1 (这不是我的代码中的复制粘贴,但你明白了) 那么如果你说$ _URL = $ _REQUEST [“url”];
$ directive = explode(“/”,$ _ URL);
你会得到你需要的东西,你可以说模块/方法/ id / 1 / data / 2的参数
你必须处理你的参数,如果你使用GET方法
它就可以了 仅导航(因为应该使用)。也使得这些东西更安全,因为没有人可以发送SQL
通过get或任何“智能”指令进行注射。