Tekil Mesaj gösterimi
Alt 22 Mayıs 2021, 20:30   #1
ExCaLuBuR
ExCaLuBuR - ait Kullanıcı Resmi (Avatar)

Standart cURL ile son konumu almak

cURL ile transfer edilen URL’in yönlendiği son konumu almak.


cURL istemci taraflı ücretsiz bir URL transfer kütüphanesidir ve PHP’de de sık kullanılmaktadır, file_get_contents() ve readfile()’a göre bir miktar farklı ve birçok açıdan çok daha avantajlıdır.

cURL ile PHP’da bir URL’in transfer edilmesini söylediğinizde cURL eğer aksi belirtilmemişse ve belirtilen URL başla bir adrese yönleniyor olsa bile ilk belirtilen URL’in içeriğini alır.

cURL’in eğer yönlendirmeyi takip etmesini istiyorsanız curl_setopt içerisinde CURLOPT_FOLLOWLOCATION kullanmalısınız ve eğer en son yönlendirildiği adresi almak isterseniz curl_getinfo içerisinde CURLINFO_EFFECTIVE_URL kullanırsınız.

Aşağıdaki yazdığım örnek fonksiyon size cURL ile transfer etmeyi denediğinin URL’in son lokasyonunu verir.

PHP- Kodu

function cURL_final($url){
    
$ch curl_init($url);
    
curl_setopt($chCURLOPT_NOBODY1);
    
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    
curl_setopt($chCURLOPT_AUTOREFERER1);
    
curl_setopt($ch,CURLOPT_HEADER,false);
    
$response curl_exec($ch);
    
$target curl_getinfo($chCURLINFO_EFFECTIVE_URL);
    
curl_close($ch);
        if (
$target)
            return 
$target;
    return 
false;

CURLOPT_NOBODY transfer edilen URL’in içerik çıktısınız vermez, CURLOPT_FOLLOWLOCATION URL’in yönlendirilmesini takip eder(bir limiti var),
CURLOPT_AUTOREFERER ilk istenen URL’den sonraki yönlendirilmelerde ilk URL’i referer olarak kullanır,
CURLOPT_HEADER URL’in header çıktısını vermez.

Kullanımı da şu şekilde olabilir

PHP- Kodu

$sonuc cURL_final('https://source.unsplash.com/collection/3697116/1920x1080')'; 

Alıntı:
Volkan Yılmaz
________________

06/02/2023 İnsan olan herkesin kalbi acıdı.