Html dizeden reklam dışarı soyun

4 Cevap php

Ben bir değişken içeren html dize var. Bu dize bu özel kodu vardır

<a href="http://www.pheedo.com/click.phdo?s=xxxxxxxx&amp;p=1"><img border="0" src="http://www.pheedo.com/img.phdo?s=xxxxxxxxxx&amp;p=1" style="border: 0pt none ;" alt=""/></a>

Regex kullanarak, nasıl bunu kaldırabilirsiniz. Temelde pheedo.com etki arıyor ve bağlantı ve resim etiketi sıyırma.

Teşekkürler

4 Cevap

Bu (PHP ile yazılmış) etiketler uymalıdır:

$regex = "#<a href=\"http:\/\/www\.pheedo\.com[^>]+><img[^>]+><\/a>#"

Bu bir anti-cevap: regexes ile keyfi HTML manipüle etmeyin! HTML düzgün bir kabus olabilir ayrıştırma, gerçekten karmaşık bir spec.

phpQuery veya yerleşik DOMDocument, onlar sizin için tüm HTML garipliklerinden nasıl başa bilmek gibi bir kitaplığı kullanın.

Daha genel bir yaklaşım için, (text / html reklamlar, aynı etki, vb farklı adresler ..) deneyebilirsin

<a.*href="[^"]*pheedo.com[^"]*".*</a>

Sadece bulmak herhangi bir sonuç değiştirin. Bir çocuk varsa <a/>, sorunları için gidiyoruz unutmayın.

    $text = '<a href="http://www.pheedo.com/click.phdo?s=xxxxxxxx&amp;p=1"><img border="0" src="http://www.pheedo.com/img.phdo?s=xxxxxxxxxx&amp;p=1" style="border: 0pt none ;" alt=""/></a>';
    $reg = "/href=\"(http:\/\/\S+?)\"/i";
    preg_match_all($reg, $text, $matches, PREG_PATTERN_ORDER);

    // $matches[1] should now hold all the domain name "www.pheeedo.com"

Eğer preg bir sayfa geçmek ve bir dizideki tüm eşleşen sonuçlar alabilir yüzden ben bu şekilde yaptım ... /

Ben eğer ilgilendi, bu resim arama aracı yapmak için bazı simular şeyler yaptım.

http://www.iansimpsonarchitects.com/fraser

Sen sayfasındaki bir linkten tam PHP kaynak görebilirsiniz.

F.