1

サイトからすべての CatID を収集しようとしています... URL 構造は...

http://www.abc.com/family/index.jsp?categoryId=12436777

私はそれに興味がcategoryIdあります。12436777

私の質問は

正規表現と文字列爆発のどちらが最適ですか??

正規表現の場合、私を助けてください、私はそれが非常に苦手です..

また、次のような URL を考慮する必要があります。

http://www.abc.com/product/index.jsp?productId=12282785

私は試した

$array = explode("http://www.abc.com/family/index.jsp?categoryId=", $loc); 

foreach ($array as $part) {
        $zee[] = $part[1];
}

しかし、それは私に何も与えません..

手伝ってくれてありがとう..

4

7 に答える 7

6

parse_urlを使用して、クエリ文字列を確実に取得できます。

$parts = parse_url('http://www.abc.com/family/index.jsp?categoryId=12436777');

次に、parse_strを使用して変数を解析します。

parse_str($parts['query'], $result);
echo $result['categoryId']; // outputs 12436777
于 2013-02-26T22:08:42.383 に答える
2

次の正規表現を使用できます。

http://.+?Id=(\d+)

最初のグループには、探している ID が含まれます。

于 2013-02-26T22:06:51.420 に答える
2

どうですか:

$url_parts = parse_url('http://www.abc.com/family/index.jsp?categoryId=12436777');

if (isset($url_parts['query'])) {
  $query_parts = explode('&', $url_parts['query']); 

  $keys = array(); 
  foreach ($query_parts as $part) { 
      $item = explode('=', $part); 
      $keys[$item[0]] = $item[1]; 
  } 

  $category_id = isset($keys['categoryId']) ? $keys['categoryId'] : 0;
}
于 2013-02-26T22:08:43.980 に答える
1

が唯一の数であると確信している場合は、これを実行してください

$st = "http://www.abc.com/family/index.jsp?categoryId=12436777";

echo preg_filter('/[^0-9]/','',$st);
于 2013-02-26T22:12:32.673 に答える
1

コード:

$url = "http://www.abc.com/family/index.jsp?categoryId=12436777";

$parts = Explode('=', $url);

$id = $parts[count($parts) - 1];

デモンストレーション:

于 2013-02-26T22:06:45.253 に答える
1

試す...

  list(,$id) = explode('=','http://www.abc.com/product/index.jsp?productId=12282785');

これは、文字列に1がある場合に機能します =

于 2013-02-26T22:08:20.660 に答える
1

爆発の最初のパラメータは区切り項目です。使いたい場合は、次のようにしてみてください。

$loc = "http://www.abc.com/family/index.jsp?categoryId=12436777";
$res=explode("=", $loc);

そしてIDが入ります$res[1]

于 2013-02-26T22:08:45.170 に答える