Kategoriler
Kodlama

PHP readfile için User-Agent kullanmak

User-Agent kontrolü olan bir dosyayı user-agent atayarak readfile() ile çekmek.

İhtiyaç olabilir, bir projede sayfaya başka bir dosyayı readfile ile çekiyordum ancak ilgili dosyaya direk erişimin olmasını istemiyordum, bu yüzden en kolay yol olarak dosyaya erişimde User-Agent kontrolü olsun istedim ve aşağıdaki fonksiyon ile bunu yaptım.

Fonksiyon:

$default_opts = array(
        'http' => array(
            'user_agent' => 'wolkanca',
            )
    );
    stream_context_get_default($default_opts);
readfile('https://wolkanca.com/dosya.php');

Yukarıdaki fonksiyon dosya.php readfile() ile getirirken user-agent olarak “wolkanca” gönderir, dolayısıyla bunu dosya.php içerisinde aşağıdaki örnekte olduğu gibi kullanabiliriz.

dosya.php içerisinde örnek User-Agent kontrolü:

if(isset($_SERVER['HTTP_USER_AGENT'])){
$wolkanca = strpos($_SERVER["HTTP_USER_AGENT"], 'wolkanca') ? true : false;
    if ($wolkanca){
			echo 'Merhaba Volkan!';
		}else{
			echo 'Sana yasak kardeş!';
	}
}

Dilerseniz readfile() fonksiyonunda user-agent gibi başka header mesajları da göndermeniz mümkün, örnek:

$default_opts = array(
        'http' => array(
            'user_agent' => 'wolkanca',
            'header' => array(
                'X-ornek1: mesela',
                'X-ornek2: meselayani'
            )
        )
    );
    stream_context_get_default($default_opts);

Ayrıca dilerseniz web sitesinin tamamının user-agent’ini tümüyle değiştirebilir bunu PHP ayar dosyasına ini_set('user_agent', 'wolkanca'); ekleyerek halledebilirsiniz.

Tabii aynı şeyleri cURl ile yapmak daha kolay ancak readfile ile cURl’ın özellikleri bazı kullanım amaçlarında farklılık gösterir.

Kaynaklar: