Bir sayfadaki görüntü mutlak yolun tüm alıyorum?

2 Cevap php

Ben bir sayfa görüntülerin tüm src almak için çalışıyorum. Ancak bazı sayfalar mutlak yollarını kullanmak ve bazı yoktur. Yani bu ne yapmalı iyi yolu merak ediyorum?

şimdi ben kullanıyorum.

$imgsrc_regex = '#<\s*img [^\>]*src\s*=\s*(["\'])(.*?)\1#im';

preg_match_all($imgsrc_regex, $html, $matches);

For example webpage a might have the images as src="xyz.png" while others might use src="b.com/xyz.png" so is there a way to automatically append the url when necessary?

2 Cevap

En iyi yolu (IMO) DOMDocument kullanmak ve DOMXPath URL'leri almak olacaktır:

$dom=new domDocument;
$dom->loadHTML($html);

ve

$xpath = new DOMXPath($dom);
$result = $xpath->query("//img/@src");

Using regex to parse HTML is bad.

Yoksa gerçekten ne istediğini Sorunuzu netleştirmek zorunda. Sadece mutlak görüntü URL'leri almak istiyor musunuz? Eğer öyleyse, onlar ile başlayabilirsiniz olmadığını kontrol edebilirsiniz http::

$result = $xpath->query("//img[starts-with(@src, 'http:') or starts-with(@src, 'HTTP:')]/@src");

Use a HTML Parser, not a regular expression

Cidden, HTML etiketleri için arayan bir düzenli ifade için yanlış problem alanı olduğunu.