2011-09-22 3 views
0

CodeIgniter 프레임 워크를 사용하고 있으며 내 URL에서 % 20을 (를) 제거하는 방법에 대해 혼란 스럽습니다. 다음은 내 코드 예제입니다. 컨트롤러 - 블로그 방법 - 쇼 속성 -이 내 블로그Codeigniter URI 함수 url_title() 사용 방법

public function show($blog= null) 
    { 
    // my attempt to set the uri segment 
    $blogName = $this->uri->segment(3, url_title($blog)); 
    ... //other code 
} 

이 나던 일, 즉 페이지로드에 보여줍니다 그래서 나는 기능 ('이 내 블로그')을 url_title을 구현 어디 혼란 스러워요 :

/블로그/쇼 /이 -입니다 - 내 블로그

내가 config/routes.php 파일의 아래 변수 에다 뭔가를 어떻게해야합니까?

감사합니다.

는 편집 :

좋아, 그래서는 url_title() 출력 그래서 난 지금이 ​​this20is20my20blog 것을 발견

 $blogUrl = str_replace("%20", "-", $blog); 
    $this->uri->segment(3, $blogUrl); 

을하지만 여전히 %로 반향 (20)

+0

시도 %20 그래서 대신 않는 str_replace 일에 인코딩 취득 (예., 무엇을 "반환"은 % 20 년대?), 그것은 알고 불가능 무슨 일이야. 또한 "/ blog/show/this-is-my-blog"를 표시하고 싶지만 URI를 탐색 한 내용과 $를 전달하는지 여부는 지정하지 않았습니다. blog 매개 변수를 show() 함수에 추가하십시오. –

답변

3

url로 인코딩 된 모든 문자를 제거하기 위해 기본 PHP 함수 인 urldecode를 사용해야합니다. URL에 공백이 바로 표시되는 다른 코드없이

public function show($blog= null) 
{ 
    // i'm not sure what url_title does so you might have to tweak this a little 
    $blogName = $this->uri->segment(3, urldecode(url_title($blog))); 
} 

http://php.net/manual/en/function.urldecode.php

1

시도를 URL을 반환 $this->uri->segment();을 올바르게 수행하기 전에 url_title()을 입력하십시오.

관련 문제