Използване на оторизация при 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);

Това е всичко :)

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)
Използване на оторизация при file_get_contents(), 5.0 out of 5 based on 1 rating

3 thoughts on “Използване на оторизация при file_get_contents()”

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

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

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.22_1171]
    Rating: 0 (from 0 votes)
  2. Абсолютно съм съгласен с теб, че и по този начин става, на мен този ми се стори по- коректен. Като се замисля така като ги гледам едно до едно смятам, че идвата са добри. Въпрос на навик.

    VN:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    VN:F [1.9.22_1171]
    Rating: 0 (from 0 votes)
  3. Има ли възможен начин да се вземе някаква информация чрез file_get_contents() или CURL от data.bg, понеже след обновяването тези две функции работят само на локалхост.

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.22_1171]
    Rating: 0 (from 0 votes)

Вашият коментар

Вашият email адрес няма да бъде публикуван Задължителните полета са отбелязани с *