如何使用php在html中查找此url?

如何使用php在html中查找此url?,php,regex,preg-match,file-get-contents,Php,Regex,Preg Match,File Get Contents,我想在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 我想要它的三个部分: 二, com.rovio.angrybirdsbriends 1.7.0

我想在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
我想要它的三个部分:

  • 二,
  • com.rovio.angrybirdsbriends
  • 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
    
    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
    
    2
    com.rovio.angrybirdsfriends
    1.7.0
    

    这并不是很简单,但在您的情况下可能已经足够好了。

    错误#1:使用正则表达式解析html。使用dom解析器。在第一个示例中,应该从何处解析
    2
    ?url位于$html=file\u get\u contents(“);是的,但首先我应该在html文件中找到url,*&apkid=*&ver=*。仅*每次在我无法访问
    http://site1.com/games/arcade/139173-angry-birds-friends-1-7-0.html
    ,因此我看不到HTML是什么样子。如果您可以发布该文件的相关部分,那么我可能可以帮助您解析它。谢谢,我会的看一看