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