Я хочу передать 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"". Какой должен быть лучший способ сделать это?
Установите для вашего протокола URI значение REQUEST_URI в application/config/config.php, например:
REQUEST_URI
application/config/config.php
$config['uri_protocol'] = 'REQUEST_URI';
затем используйте GET метод:
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
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');
Передайте URL-адрес urlendode () в сегмент, а затем расшифруйте его с помощью собственного (MY_ *) класса:
приложение / ядро / MY_URI.php:
<?php class MY_URI extends CI_URI { function _filter_uri($str) { return rawurldecode(parent::_filter_uri($str)); } } // EOF
Используйте эту технику, чтобы получить 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");
Вот ссылка на статью, которая отвечает на этот квест - http://wildlyinaccurate.com/segment-based-urls-with-query-strings-in-codeigniter-2/ Помните, что Google - ваш лучший друг.