PHP ile FULL görüntü src Scrape

2 Cevap php

Ben php ile img src bulunuyor kazımak için çalışıyorum, ben src cezası alabilirsiniz, ama src tam yolunu içermiyorsa o zaman ben gerçekten bunu yeniden olamaz. Php (Eğer sağ tıklama menüsünü kullanırsanız tarayıcılar alabilirsiniz) kullanarak görüntünün tam yolunu kapmak için bir yolu var mı.

yani. Nasıl ben şu iki örneklerinden biri olarak etki içeren bir TAM yol alabilirim?

src="../foo/logo.png"
src="/images/logo.png"

Teşekkürler,

Allan

2 Cevap

Sen ... Sadece biraz sabır bir regex gerekmez. Ben gerçekten sizin için kod yazmak istiyorum, ama src http:// ile başlıyorsa eğer sadece kontrol ve yok değilse, size 3 farklı gibi durumlarda var.

  1. Bir / ardından, başına http://domain.com ile başlıyorsa
  2. O ile başlıyorsa src bir / ile başlayıncaya kadar .. Eğer split tam URL ve hack off pieces gerekecek
  3. Else (bir mektup ile başlar), tam etki almak, ve strip it down to the last slash daha sonra src URL'sini ekleyin.

Ya .... tembel olması ve bu komut dosyasını çalmak

$url = "http://www.goat.com/money/dave.html";
$rel = "../images/cheese.jpg";

$com = InternetCombineURL($url,$rel);

//  Returns http://www.goat.com/images/cheese.jpg

function InternetCombineUrl($absolute, $relative) {
    $p = parse_url($relative);
    if($p["scheme"])return $relative;

    extract(parse_url($absolute));

    $path = dirname($path); 

    if($relative{0} == '/') {
        $cparts = array_filter(explode("/", $relative));
    }
    else {
        $aparts = array_filter(explode("/", $path));
        $rparts = array_filter(explode("/", $relative));
        $cparts = array_merge($aparts, $rparts);
        foreach($cparts as $i => $part) {
            if($part == '.') {
                $cparts[$i] = null;
            }
            if($part == '..') {
                $cparts[$i - 1] = null;
                $cparts[$i] = null;
            }
        }
        $cparts = array_filter($cparts);
    }
    $path = implode("/", $cparts);
    $url = "";
    if($scheme) {
        $url = "$scheme://";
    }
    if($user) {
        $url .= "$user";
        if($pass) {
            $url .= ":$pass";
        }
        $url .= "@";
    }
    if($host) {
        $url .= "$host/";
    }
    $url .= $path;
    return $url;
}

Dan http://www.web-max.ca/PHP/misc_24.php

Eğer site URL'sini yoksa bunu bir dize var sol konum bütün gibi görünüyor (bu durumda src özniteliği değerine Önlerine) ile başlıyoruz.

Ben tabii ki herhangi bir ek bilgilere erişimi yok varsayarak yaşıyorum. HTML ayrıştırma ediyorsanız, ben en azından HTML sayfasına mutlak bir URL erişmek gerekir varsayalım, ama belki de istemem.