Удалить в URL знак вопроса и все символы после него

Рейтинг: 0Ответов: 4Опубликовано: 27.01.2015
http://shop.local/podsection?id=2&ids=6

Должно остаться

http://shop.local/podsection

Последовательность символов после знака ? может быть разной длины и содержания. Если можно, то функциями php, плиз.

Ответы

▲ 2
$url = 'http://shop.local/podsection?id=2&ids=6';

$parts = parse_url($url);

echo $parts['scheme'].'://'.$parts['host'].$parts['path'];
▲ 2

Однострочник

$strippedUrl = reset(explode('?', $url));

Ущербный однострочник

$strippedUrl = substr($url, 0, (($pos = strpos($url, "?")) !== false) ? $pos : strlen($url));

Правильный подход

Описан в ответе выше. Его кардинальное отличие в том, что мы работаем с URL, как с URL. Это не дает конкретных преимуществ, но придает приложению большую конкретику и ее поведение становится более ожидаемым.

▲ 1
preg_replace("/\?.*/", "", "http://shop.local/podsection?id=2&ids=6")
▲ 1
$url = "http://shop.local/podsection?id=2&ids=6";

return strtok($url, '?');