В URL-адресе, подобном приведенному ниже, я хотел бы получить значение ProdId. Формат URL всегда будет согласованным, как и имя параметра, но длина значения может измениться. Он всегда будет числовым.
http://www.example.com/page.php?ProdId=2683322&xpage=2
С помощью PHP какой самый быстрый способ получить его (я буду обрабатывать 10 000, так что скорость это проблема)?
PHP имеет встроенные функции для этого. Используйте parse_url() и parse_str() вместе.
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+)
Попробуйте эту функцию:
/https?:\/{2}(?:w{3}\.)?[-.\w][^\.]+\.{2,}\/ProdId=\d+\&xpage=\d+/
Не можете ли вы использовать $_GET['ProdId']?
$_GET['ProdId']
/^[^#?]*\?(?:[^#]*&)?ProdId=(\d+)(?:[#&]|$)/
И то же на английском:
?
#
&