求个匹配链接的正则

淘宝链接,可能有N个参数,想把商品ID匹配出来,链接类似于:

1、http://item.taobao.com/item.htm?id=9523770399&ali_refid=a3_619362_1007:1102373933:7:46702465U84y78608587678s868v3I:7bcdc59fb0c21ce96e901436b439fd77&ali_trackid=1_7bcdc59fb0c21ce96e901436b439fd77

2、http://item.taobao.com/auction/item_detail.htm?item_num_id=9523770399&ali_refid=a3_619362_1007:1102373933:7:46702465U84y78608587678s868v3I:7bcdc59fb0c21ce96e901436b439fd77&ali_trackid=1_7bcdc59fb0c21ce96e901436b439fd77

3、http://item.taobao.com/item.htm?id=9523770399

4、http://item.taobao.com/auction/item_detail.htm?item_num_id=9523770399

以上4个全是一个商品的链接,我想把id=和item_num_id=后面的数字匹配出来。



作者: chinatowngame   发布时间: 2011-05-23

没有使用正则表达式,感觉这样的速度应该比较快,测试过函数是可以的
PHP code

function getid($url){
    //手册说 explode()比正则表达式快
    $geturl=explode("&", $url);
    //获取数组的第一个下标
    $getitem=explode("=", $geturl[0]);
    //返回“=”后面的数值
    return $getitem[1];    
}

嘿嘿。。。。小弟菜鸟一枚,头一次在csdn发言,规矩都不懂,见谅。

作者: smileanyplace   发布时间: 2011-05-24

怪我没说清楚,之所以要用正则是因为id=9523770399这个参数不见得就一定是第一个参数,也就说id=9523770399不一定是跟在?号后面的,参数有可能是打乱的,而我只要取出id=后面的数字。

作者: chinatowngame   发布时间: 2011-05-24