Передача URL в сегменте Codeigniter URL - PullRequest
2 голосов
/ 24 марта 2012

Я хочу передать URL, например, http://example.com/test?a=1&b=2 в сегменте URL кодового указателя.

Я пытаюсь передать что-то вроде этого http://myurl.com/abc/http://example.com/test?a=1&b=2 и получить URL-адрес "http://example.com/test?a=1&b=2"". Какой должен быть лучший способ сделать это?

Ответы [ 4 ]

4 голосов
/ 24 марта 2012

Установите для вашего протокола URI значение REQUEST_URI в application/config/config.php, например:

$config['uri_protocol'] = 'REQUEST_URI';

затем используйте GET метод:

$this->input->get('a');

EDIT:

Поскольку http://example.com/test?a=1&b=2 не является закодированным URL, это невозможно. Итак, сначала я бы закодировал URL с помощью функции urlencode следующим образом:

urlencode('http://example.com/test?a=1&b=2');

возвращает что-то вроде: http%3A%2F%2Fexample.com%2Ftest%3Fa%3D1%26b%3D2

Таким образом, я бы передал URL следующим образом:

http://myurl.com/?url=http%3A%2F%2Fexample.com%2Ftest%3Fa%3D1%26b%3D2

затем получите пример URL с методом GET.

$this->input->get('url');
0 голосов
/ 16 февраля 2015

Передайте URL-адрес urlendode () в сегмент, а затем расшифруйте его с помощью собственного (MY_ *) класса:

приложение / ядро ​​/ MY_URI.php:

<?php

class MY_URI extends CI_URI {

    function _filter_uri($str)
    {
        return rawurldecode(parent::_filter_uri($str));
    }
}

// EOF
0 голосов
/ 24 марта 2012

Используйте эту технику, чтобы получить URL

$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");
0 голосов
/ 24 марта 2012

Вот ссылка на статью, которая отвечает на этот квест - http://wildlyinaccurate.com/segment-based-urls-with-query-strings-in-codeigniter-2/ Помните, что Google - ваш лучший друг.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...