duanguochong0397 2015-02-23 16:27
浏览 43
已采纳

如何在PHP的HTML中找到这个URL?

I want to find a specific url in a html page and get it's part. the url is in this page :

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

and is like

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

I want 3 parts of it:

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

My code:

$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];
  • 写回答

1条回答 默认 最新

  • douqin231881 2015-02-23 16:47
    关注

    Is this what you are looking for?

    $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;
    

    Output:

    2
    com.rovio.angrybirdsfriends
    1.7.0
    

    Update

    // 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;
        }
    }
    

    Output:

    2
    com.rovio.angrybirdsfriends
    1.7.0
    

    It is not totally fool-proof but maybe good enough in your case.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路
  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应
  • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
  • ¥100 连续两帧图像高速减法