2010-11-11 67 views
12

您好我想将我的当前网址存储在会话变量中。CodeIgniter current_url不显示查询字符串

我的应用程序使用像www.domain.com/add?url=http://www.google.com

但current_url查询字符串()返回 'ww.domain.com/add'。没有查询字符串的网址。

我已经检查过帮助程序文件,current_url似乎只是将uri段附加到config中设置的site_url。

function current_url() 
{ 
    $CI =& get_instance(); 
    return $CI->config->site_url($CI->uri->uri_string()); 
} 

任何人都知道我可以抓住查询字符串来追加它们,甚至只是抓住整个网址。

回答

28

创建MY_url_helper:

function current_url() 
{ 
    $CI =& get_instance(); 

    $url = $CI->config->site_url($CI->uri->uri_string()); 
    return $_SERVER['QUERY_STRING'] ? $url.'?'.$_SERVER['QUERY_STRING'] : $url; 
} 
+1

很酷,谢谢。不知道$ _SERVER ['QUERY_STRING'] – michael 2010-11-12 16:30:31

+0

这真棒,它确实帮助我解决了一个问题。谢谢! – 2011-06-13 19:04:02

+7

您也可以命名为'current_full_url()'这个函数来让原生函数也可用。 – machineaddict 2013-06-28 06:14:12

5

我不认为CodeIgniter有这方面的帮手。只要使用PHP的原生支持这一点:

回声完整的URL:

echo base_url().ltrim($_SERVER['REQUEST_URI'], '/'); 

只有查询字符串:

echo $_SERVER['QUERY_STRING']; 
+2

此方法只将如果您的域根目录中有该项目,则工作,否则该项目的文件夹将以该方法出现两次。 – machineaddict 2013-06-20 13:34:27