Понеже не видя ясно обяснено решението за използване на оторизация при file_get_contents() реших да напиша тази публикация. Решението както винаги е супер "сложно" :)
Проблемът е, че когато при защитена директория от Apache с user и pass искате да ползвате file_get_contents той няма да направи това което очаквате. Т.е. ще ви изведе грешка:
<b>Warning</b>: file_get_contents(http://example.com/test.php) [<a href="function.file-get-contents">function.file-get-contents</a>]: failed to open stream: HTTP request failed! HTTP/1.1 401 Authorization Required
Това се дължи на факта, че изпълнението на file_get_contents преминава през оторизиращата частица и ако не се зададат user и pass като аргументи няма да извърши очакваното. Стига приказки, че написах повече обяснения от колкото е голямо "решението":
$auth = stream_context_create(array( 'http' => array('header' => "Authorization: Basic " . base64_encode("USERNAME:PASSWORD"))));
print file_get_contents("http://example.com/test.php",false,$auth);
Това е всичко :)
Използване на оторизация при file_get_contents(),
Винаги можеш да пратиш потребител и парола в самия адрес:
file_get_contents('http://user:[email protected]/test.php');
Абсолютно съм съгласен с теб, че и по този начин става, на мен този ми се стори по- коректен. Като се замисля така като ги гледам едно до едно смятам, че идвата са добри. Въпрос на навик.
Има ли възможен начин да се вземе някаква информация чрез file_get_contents() или CURL от data.bg, понеже след обновяването тези две функции работят само на локалхост.