Merhabalar. Databilim sizlerin güncel teknoloji sorularını cevaplıyor. Sizde aklınıza takılan soruyu bize sorun.

PHP Linkin Ulaştığı Son Url

+1 oy
24 gösterim
14 Aralık 2017 oguzhan (4,810 puan) sordu
14 Aralık 2017 oguzhan yeniden etikenlendirildi

Bot yaparken bazen sayfalar yönlenebiliyor bu sorunu bu fonksiyonla aşıyorum.

function enson_url($l_url, $max=5, $i=0)
{
    if( $max === $i ) {
        return $l_url;
    }

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $l_url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
    curl_setopt($ch, CURLOPT_NOBODY, true);
    curl_setopt($ch, CURLOPT_REFERER, $_SERVER['HTTP_REFERER']);
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    curl_setopt($ch, CURLOPT_VERBOSE, false);
    curl_setopt($ch, CURLOPT_NOPROGRESS, true);
    $headers = curl_exec($ch);
    curl_close($ch);

    if( preg_match('/Location: (.*).swf/i', $headers, $location) === 0 ) {
        return $l_url;
    }

    $n_url = preg_replace('/^\/+/', '', trim($location[1]));

    if( preg_match('|^(https?://)|', $n_url, $matches) === 0 ) {
        $l_url = parse_url($l_url);
        $l_url = $l_url['scheme'].'://'.$l_url['host'].'/';
        $n_url = $l_url.$n_url;
    }

    return enson_url($n_url, $max, $i++);
}

1 cevap

0 oy
26 Aralık 2017 php botçusu cevapladı
şimdi site sahipleri düşünsün :D
Hoş geldiniz, Databilim sizlere sorularınızın diğer üyelerimiz tarafından cevaplanması için bir ortam sağlar.
...