Как получить строку запроса URL-адреса (части после вопросительного знака)?

Как я могу получить только содержимое строки запроса, смотрящей из?:

asegment? param1 = value1 & param2 = значение2

ПРИМЕЧАНИЕ. Мне нужен только весь контент после «?», Также я хочу опустить этот символ.

Вот это Regex \?(.+) И Rubular для его доказательства . И использовать его:

 preg_match("/\?(.+)/", $inputString, $matches); if (!$matches) { // no matches } $result = $matches[1]; 

Если вы уверены, что в вашей строке есть запрос, то это сделает трюк:

 echo substr( $string, strpos( $string, '?' ) + 1 ); 

Если ваша строка не может содержать запрос, проверьте сначала: strpos вернет boolean false.

\? ([А-z0-9A-г & =] +) *

Похоже, вы имеете дело с URL-адресами, рассмотрите библиотеку, предназначенную для них. И если вы только заинтересованы в получении всего после?, То используйте что-то вроде

 String s = "asegment?param1=value1&param2=value2"; String paramStr = s.substring(s.indexOf('?')-1); 

Изменить: не видел, что вы используете PHP – игнорируете.

У вас есть пара опций, прежде чем для этого не требуется регулярное выражение

 $val = (strpos("?", $url) !== false? substr($url, strpos($url, "?")): ""); 

или parse_url

 $val = parse_url($url, PHP_URL_QUERY); 

РЕДАКТИРОВАТЬ

Исправлено условие, когда нет строки запроса

Это простое решение, использующее strrev и strtok

 $url = "asegment?param1=value1&param2=value2"; echo strrev(strtok(strrev($url),'?')); 

Вы должны использовать глобальный массив $ _GET <?php echo $_GET["param1"]; ?> <?php echo $_GET["param1"]; ?>