Използване на оторизация при file_get_contents()

Понеже не видя ясно обяснено решението за използване на оторизация при 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 отговора

  1. Аватарът на Никола Павлов

    Винаги можеш да пратиш потребител и парола в самия адрес:

    file_get_contents(‘http://user:[email protected]/test.php’);

    1. Аватарът на Мартин Петров

      Абсолютно съм съгласен с теб, че и по този начин става, на мен този ми се стори по- коректен. Като се замисля така като ги гледам едно до едно смятам, че идвата са добри. Въпрос на навик.

  2. Аватарът на Антон Димитров

    Има ли възможен начин да се вземе някаква информация чрез 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.