PHP preg_match,从Android URL地址中查找包名

时间:2012-12-11 07:32:13

标签: php

我需要从URL地址获取Android包名称。

这就是我所做的。

$url = 'https://play.google.com/store/apps/details?id=com.gamevil.projectn.global&feature=featured-apps#?t=W251bGwsMSwyLDIwMywiY29tLmdhbWV2aWwucHJvamVjdG4uZ2xvYmFsIl0.';
        preg_match("~id=(\d+)~", $url, $matches);
        $package_name = $matches[1];

        echo $package_name;

包名称应为“com.gamevil.projectn.global”

但是,我的代码无效。

有什么我想念的吗?

2 个答案:

答案 0 :(得分:3)

您可以通过parse_url功能

执行此操作
<?php
$url = 'https://play.google.com/store/apps/details?id=com.gamevil.projectn.global&feature=featured-apps#?t=W251bGwsMSwyLDIwMywiY29tLmdhbWV2aWwucHJvamVjdG4uZ2xvYmFsIl0.';
$arr =parse_url($url);
$new = explode("&",$arr['query']);
$new1 = explode("=",$new[0]);
echo($new1[1] );

输出

com.gamevil.projectn.global

<子> <子> <子> jsFiddle

答案 1 :(得分:2)

也许这可以帮到你:

$url = 'https://play.google.com/store/apps/details?id=com.gamevil.projectn.global&feature=featured-apps#?t=W251bGwsMSwyLDIwMywiY29tLmdhbWV2aWwucHJvamVjdG4uZ2xvYmFsIl0.';
    preg_match("/id=(.*?)&/", $url, $matches);
    $package_name = $matches[1];

    echo $package_name;

preg_match无法找到id=&之间的所有内容。

但更好的解决方案是使用parse_url来解析网址,此函数将返回网址的组件。