如何用php在html中找到这个url


How to find this url in the html with php?

我想在html页面中找到一个特定的url并获取它的一部分。url在此页面中:

http://site1.com/games/arcade/139173-angry-birds-friends-1-7-0.html`

就像

http://download.site2.org/?server=2&apkid=com.rovio.angrybirdsfriends&ver=1.7.0

我想要它的三部分:

  1. 2
  2. com.rovio.angrybirdsfriends
  3. 1.7.0

我的代码:

$html = file_get_contents("http://site1.com/games/name/139173-angry-birds-friends-1-7-0.html");
preg_match("/download(.*)/", $html, $results)
echo = $results[0];

这就是您想要的吗?

$url = 'http://download.site2.org/?server=2&apkid=com.rovio.angrybirdsfriends&ver=1.7.0';
$query = parse_url($url, PHP_URL_QUERY);
parse_str($query, $params);
echo $params['server'], PHP_EOL;
echo $params['apkid'], PHP_EOL;
echo $params['ver'], PHP_EOL;

输出:

2
com.rovio.angrybirdsfriends
1.7.0

更新

// Read HTML
$html = file_get_contents(
    'http://getandroidapp.org/games/arcade/'
    . '139173-angry-birds-friends-1-7-0.html'
);
// Turn HTML into a DOM document
$dom = new DOMDocument();
@$dom->loadHTML($html); // Mute warnings
// Find anchor ...
foreach ($dom->getElementsByTagName('a') as $link) {
    $href = $link->getAttribute('href');
    // ... having a query part that starts with 'server='
    if (preg_match('#'?server=#', $href)) {
        $url = $href;
        // Parse query string from href
        $query = parse_url($url, PHP_URL_QUERY);
        parse_str($query, $params);
        // Display values
        echo $params['server'], PHP_EOL;
        echo $params['apkid'], PHP_EOL;
        echo $params['ver'], PHP_EOL;
        // One is enough
        break;
    }
}

输出:

2
com.rovio.angrybirdsfriends
1.7.0

这并不完全是愚蠢的证明,但在你的情况下可能已经足够好了。