Понеже не видя ясно обяснено решението за използване на оторизация при 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);
Това е всичко 🙂
3 отговора
Винаги можеш да пратиш потребител и парола в самия адрес:
file_get_contents(‘http://user:[email protected]/test.php’);
Абсолютно съм съгласен с теб, че и по този начин става, на мен този ми се стори по- коректен. Като се замисля така като ги гледам едно до едно смятам, че идвата са добри. Въпрос на навик.
Има ли възможен начин да се вземе някаква информация чрез file_get_contents() или CURL от data.bg, понеже след обновяването тези две функции работят само на локалхост.
Logged in as {{omniform_current_user_display_name}}. Edit your profile. Log out? Required fields are marked *
Your email address will not be published. Required fields are marked *
Comments are closed.
You must be logged in to post a comment.