Получение идентификатора из строки. Задача Regex

Я пытаюсь получить идентификатор из строки URL.

Я пытаюсь использовать следующий код:

ИЗ:

<url>http://www.monkeys.com/monkey.php?id=24</url> 

Я хочу получить «24» с: –

 $ID = preg_replace($url, '/^<url>.*\?id=(.*)<\/url>$/', '\1'); 

Любая помощь будет высоко оценена – я уверен, что это регулярная проблема, но я нахожу регулярное выражение.

Regex – неправильный инструмент для работы. использование

  • parse_strанализирует строку в переменных и
  • parse_urlparse_url URL-адрес и верните его компоненты

Пример:

 $url = "http://www.monkeys.com/monkey.php?id=24"; parse_str(parse_url($url, PHP_URL_QUERY), $parts); var_dump( $parts ); // 24 

Получение URL-адреса из элемента <URL> должно быть тривиальным. ДОМ – твой друг. См. Различные другие вопросы, касающиеся чтения XML с PHP, а также эту статью, почему вы не должны использовать Regex для синтаксического анализа HTML .

вы можете использовать это регулярное выражение:

 /^[^?]+\?id=(.*).*$/ 

Если идентификатор только числовой:

 /\?id=(\d+)/ 

Если после ID нет ничего

 /\?id=(.*)/