2012-02-13 3 views
1

Допустим, мой текущий URL являетсяКак удалить последний запрос из текущего URL

http://domain.com/category/clothing-personal-items/&page=3 

Я использовал $_SERVER["REQUEST_URI"] для получения текущего запроса URI.

$url = $_SERVER["REQUEST_URI"]; 

print_r(parse_url($url)); 

echo parse_url($url, PHP_URL_PATH); 

Массив Ouput

Array 
(
    [path] => /category/clothing-personal-items/&page=3 
) 

Вопрос:

Как я получить только /category/clothing-personal-items/ или удалить любой запрос после /category/clothing-personal-items/

+2

Вы уверены, что не существует '?' ', Прежде чем страница = 3'? –

+0

Почему вы не начинаете строку запроса со стандартным «?»? персонаж? – Borealid

+0

Вы можете просто «взорвать ('?', $ Url)' и взять первый компонент массива. –

ответ

2
$url = explode("?", $url); 
$url = array_shift($url);   // explode by ? if it is there 
$url = explode("&", $url); 
$url = array_shift($url);  // other wise explode by & and return the first item 
0
$temp = $_GET; 
array_pop($temp); 

$new_query = http_build_query($temp); 

Тогда просто добавить, что $ new_query строку в текущей $ _SERVER [ 'SCRIPT_NAME']

0
$parsed = parse_url($url, PHP_URL_PATH); 
if(preg_match('/[^&?]+/',$parsed['path'],$matches)) 
    $path = $matches[0]; 
else 
    echo "No path found"; 
Смежные вопросы