3

以下のようなURLで、ProdIdの値を取得したいと思います。URL形式は、パラメーター名と同様に常に一貫していますが、値の長さは変わる可能性があります。常に数値になります。

http://www.example.com/page.php?ProdId=2683322&xpage=2

PHPを使用してそれを取得する最も速い方法は何ですか(私は10,000を処理するので、速度が問題になります)?

4

5 に答える 5

13

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
于 2010-05-30T22:15:37.390 に答える
6

この正規表現を試してください:

^http://www\.example\.com/page\.php\?ProdId=(\d+)
于 2010-05-30T22:01:47.717 に答える
2

使えません$_GET['ProdId']か?

于 2010-05-30T22:01:56.627 に答える
2

この関数を試してください:

/https?:\/{2}(?:w{3}\.)?[-.\w][^\.]+\.{2,}\/ProdId=\d+\&xpage=\d+/
于 2010-05-31T16:04:23.367 に答える
0
/^[^#?]*\?(?:[^#]*&)?ProdId=(\d+)(?:[#&]|$)/

そして英語でも同じです:

  1. ?または以外のものに一致します#(これにより、クエリ文字列またはハッシュ部分のどちらか早い方の先頭に移動します)
  2. 一致します?(ハッシュ部分のみがあった場合、これは一致を失格にします)
  3. 必要に応じて、任意に一致し(ただし、ハッシュ部分がある場合は#ではありません)、その後に&
  4. キーと値のペアを一致させて、値をキャプチャサブパターンに入れます
  5. 次のパラメータの&、#、または文字列の末尾のいずれかに一致します。
于 2010-05-30T22:08:25.517 に答える