В URL-адресе, подобном приведенному ниже, я хотел бы получить значение ProdId. Формат URL всегда будет согласованным, как и имя параметра, но длина значения может измениться. Он всегда будет числовым.
http://www.example.com/page.php?ProdId=2683322&xpage=2
Используя PHP, что самый быстрый способ его получить (я буду обрабатывать 10 000, так что скорость – это проблема)?
Для этого PHP имеет встроенные функции. Используйте parse_url()
и parse_str()
вместе.
Составлено вместе с php.net:
$url = 'http://www.example.com/page.php?ProdId=2683322&xpage=2'; // Parse the url into an array $url_parts = parse_url($url); // Parse the query portion of the url into an assoc. array parse_str($url_parts['query'], $path_parts); echo $path_parts['ProdId']; // 2683322 echo $path_parts['xpage']; // 2
Попробуйте это регулярное выражение:
^http://www\.example\.com/page\.php\?ProdId=(\d+)
Вы не можете использовать $_GET['ProdId']
?
Попробуйте эту функцию:
/https?:\/{2}(?:w{3}\.)?[-.\w][^\.]+\.{2,}\/ProdId=\d+\&xpage=\d+/
/^[^#?]*\?(?:[^#]*&)?ProdId=(\d+)(?:[#&]|$)/
И то же самое на английском языке:
?
или #
(это приведет нас к началу строки запроса или хэш-части, в зависимости от того, что наступит раньше) ?
(если была только хэш-часть, это будет дисквалифицировать матч)