以下のようなURLで、ProdIdの値を取得したいと思います。URL形式は、パラメーター名と同様に常に一貫していますが、値の長さは変わる可能性があります。常に数値になります。
http://www.example.com/page.php?ProdId=2683322&xpage=2
PHPを使用してそれを取得する最も速い方法は何ですか(私は10,000を処理するので、速度が問題になります)?
以下のような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+)(?:[#&]|$)/
そして英語でも同じです:
?
または以外のものに一致します#
(これにより、クエリ文字列またはハッシュ部分のどちらか早い方の先頭に移動します)?
(ハッシュ部分のみがあった場合、これは一致を失格にします)&