İ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:
