php
  • regex
  • url
  • 2012-02-02 4 views 0 likes 
    0

    私はリンクのためにいくつかのHTMLを見て、それらにローカルPHPページへのリンクを置き換えるPHPページを持っています。問題は画像のリンクを見つけることです。私は現在、このコードを使用しますPHPの画像リンクを特定します

    $data = preg_replace('|(<a\s*[^>]*href=[\'"]?)|','\1newjs.php?url=', $data); 
    

    私は画像ファイル(JPGと同様のことを行うために探しています

    <a href="http://google.com">Google</a> 
    

    のようなものと一致し、

    <a href="newjs.php?url=http://google.com">Google</a> 
    

    でそれらを置き換えます、 gif、png)を置き換えて、次のように置き換えます。

    <a href="http://google.com/hello.png">Image</a> 
    
    これにより3210

    <a href="newjs.php?url=http://google.com/hello.png&image=1">Image</a> 
    

    注新しいURLに '&画像= 1'。私はこれをPHPを使って、できれば正規表現で行うことが可能ですか?正規表現を含むものとHTMLと

    通常通り

    答えて

    1

    https://stackoverflow.com/a/1732454/118068

    適切な解決策は、DOM操作を使用することです:

    $dom = new DOMDocument(); 
    $dom->loadHTML(...); 
    $xp = new DOMXPath($dom); 
    $anchors = $xp->query('//a'); 
    foreach($anchors as $a) { 
        $href = $a->getAttribute('href'); 
        if (is_image_link($href)) { // 
         $a->setAttribute('href', ... new link here ...); 
        } 
    } 
    
    +0

    おかげで、これは働いていました! – q3d

    関連する問題