如何在html和php中找到这个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

我想要它的 3 个部分:

  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

它并非完全万无一失,但对于你的情况来说可能已经足够好了。