我想在codeigniter的url段中传递http://example.com/test?a=1&b=2之类的网址。
我试图传递类似http://myurl.com/abc/http://example.com/test?a=1&b=2的内容并获得" http://example.com/test?a = 1& b = 2"网址。最好的方法是什么?
答案 0 :(得分:4)
将您的URI协议设置为REQUEST_URI
中的application/config/config.php
,如下所示:
$config['uri_protocol'] = 'REQUEST_URI';
然后使用GET
方法:
$this->input->get('a');
修改强>
由于 http://example.com/test?a=1&b=2 不是编码网址,因此无法进行编码。首先,我会使用urlencode函数对URL进行编码,如下所示:
urlencode('http://example.com/test?a=1&b=2');
返回类似:http%3A%2F%2Fexample.com%2Ftest%3Fa%3D1%26b%3D2
所以我会传递这样的网址:
http://myurl.com/?url=http%3A%2F%2Fexample.com%2Ftest%3Fa%3D1%26b%3D2
然后使用GET方法获取示例网址。
$this->input->get('url');
答案 1 :(得分:0)
以下是回答此问题的文章的链接 - http://wildlyinaccurate.com/segment-based-urls-with-query-strings-in-codeigniter-2/ 请记住,Google是您最好的朋友。
答案 2 :(得分:0)
使用此技术获取网址
$url = "http://example.com/test?a=1&b=2";
$segments = array($controller, $action, $url);
echo site_url($segments);
// or create a anchor link
echo anchor($segments, "click me");
答案 3 :(得分:0)
在段中传递urlendode()'d URL,然后使用自己的(MY_ *)类对其进行解码:
应用/核心/ MY_URI.php:
<?php
class MY_URI extends CI_URI {
function _filter_uri($str)
{
return rawurldecode(parent::_filter_uri($str));
}
}
// EOF