Przypisanie wyniku stream_context_create do stringa.

0

Cześć.

Tym razem znowu podstawy PHP, o których za wiele z googlowania nie wywnioskowałem. Dlatego proszę o pomoc w naprowadzeniu tutaj. Bez zbędnego tym razem offtopicowania przejdę od razu do rzeczy. Muszę pobrać pewną stronę koniecznie mniej więcej w taki sposób jak poniżej, ponieważ na serwerze co może normalne wywoływanie curla zostało zablokowane ze względów bezpieczeństwa (tak mi pokazał error log). A nie mogę użyć normalnego pobrania, gdyż muszę koniecznie zmodyfikować nagłówki o niestandardowy useragent. Wolał bym też nie pobierać zapisując najpierw do pliku. Ok, poniższy kod działa jak należy.

$opts    = array(
    'http' => array(
        'method' => 'GET',
        'header' => 'User-Agent: niestandardowy'
    )
);
$url     = 'adres_strony';
$context = stream_context_create($opts);
$fp      = fopen($url, 'r', false, $context);
fpassthru($fp);
fclose($fp);

I czy teraz jedynym sposobem uzyskania zawartości strony jako stringu, na którym można operować, jest coś w deseń tego co poniżej. Czy są inne, lepsze/szybsze/bardziej prawidłowe metody? Prosił bym o przykłady rozwiązań. Z góry dziękuję.

$buffer = '';
if ($fp) {
    while (!feof($fp)) {
      $buffer .= fgetss($fp, 5000);
    }
}
echo "<br>" . $buffer;
0

Może coś pomyliłem, ale chyba ten kod nie chciał mi właśnie się wykonać. Dlatego kombinuje, tak jak powyżej. Ale ok, dzięki - sprawdzę raz jeszcze w domu dzisiaj po południu i dam znać.

Edit: hmmm, jednak na myuserqgent.com działa ok. Jeszcze się upewnie. Docelowo to ma działać ze stroną zwracającą xml. Także upewnie się na spokojnie z pod Windowsa, bo klepanie tutaj kodu i wygodne wklejanie mam utrudnione. Nie mam wprawy jak na PC.

1 użytkowników online, w tym zalogowanych: 0, gości: 1