문제

여기서 도움을 주셔서 감사합니다.

내가하고 싶은 일 :

remove & itemsperpage = 10 from :

http : //localhost/thi/search/filter.html? type = featured & page = 2 & itemsperpage = 10

링크를 만듭니다.

http : //localhost/thi/search/filter.html? type = featured & page = 2 & itemsperpage = 15

지금까지 내가 생각해 낸 내용은 다음과 같습니다.

<a href="<?php echo url::site(url::current()) . http_build_query($_GET) // don't know what follows ?>"

내가 사용하는 프레임 워크 기능은 다음과 같습니다.

url :: current () = 컨트롤러/액션 형식에서 현재 URL을 반환합니다.

url :: site () = 절대 URL을 반환합니다. http : // localhost/site/controller/action

그래서 http_build_query 함수의 결과 문자열에서 '& itemsperpage'를 제거해야합니다.

그러나 나는 캐릭터 인코딩 등에 어려움을 겪고 있습니다! 도와주세요!

여기 캐릭터 인코딩의 문제가 있습니다.

$needle = '&itemsperpage';

        $querystring = http_build_query($_GET) . '<br/>';

        // echo $querystring . '<br/>';

        $pos = strpos($querystring, $needle);

        $remove = substr($querystring, ((int)$pos));

        echo substr(str_replace($remove, '', $querystring), 1); // returns ';'

http_build_query의 결과에서 문자열 '& itemsperpage'를 제거 할 수 없습니다.

도움이 되었습니까?

해결책

나는 이것을 할 것이다 :

$array = $_GET;
$array['itemsperpage'] = 15;

그런 다음 코드 만 사용하지만 새로운 변수 (및 ?):

<a href="<?php echo url::site(url::current()) . '?' . http_build_query($array)">

다른 팁

그만큼 httpquerystring 클래스에는 쿼리 문자열을 얻고 설정하고 수정하고 숯을 '번역'하는 몇 가지 방법이 있습니다.

당신은 당신이 찾고있는 효과를 제거하여 itemsperpage .의 요소 $_GET 쿼리 문자열을 작성하기 전에 배열.

unset($_GET['itemsperpage']);

그런 다음 이미 쓴 코드 만 사용하십시오.

<a href="<?php echo url::site(url::current()) . http_build_query($_GET); ?>">

편집 : 게시물을 잘못 읽었습니다. GET 요청에서 필드 / 값 쌍을 제거하고 싶다고 생각했습니다. 원하는 값으로 값을 덮어 쓰기 만하면됩니다.

$_GET['itemsperpage'] = 15;

그런 다음 이미 쓴 코드를 사용하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top