在Codeigniter URL段中传递URL

时间:2012-03-24 03:02:19

标签: php codeigniter

我想在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"网址。最好的方法是什么?

4 个答案:

答案 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