У меня есть следующая настройка контроллера тестового набора в рамках codeigniter:
class Test extends Controller {
public function Test()
{
parent::Controller();
}
public function index($bla = ''){
echo $this->uri->segment(3) . '<br/>';
echo $bla . '<br/>';
$url = site_url('test') . '/index/' . rawurlencode('foo bar') . '/';
echo "<a href=\"$url\">click me</a>";
}
}
Я бы хотел, чтобы $bla
выводил 'foo bar', а не 'foo_bar'.Независимо от того, использую ли я rawurlencode, urlencode или вообще ничего, для пробела вставляется символ «_».Я подтвердил, что ссылка на якорь содержит знак% 20, поэтому я не понимаю, почему строка изменяется.
Я включил два снимка экрана, чтобы проиллюстрировать точку, первое изображение показывает, когда к контроллеру не передан ни один аргумент, второе - с переданной ему 'foo bar'.Я просто не понимаю, почему «foo% 20bar» будет изменен?