pytanie zadane 13 kwietnia 2020 w Programowanie przez użytkownika

1 odpowiedź

odpowiedź 13 kwietnia 2020 przez użytkownika

Czasami zdarza się, że chcemy zapisać do pliku html dane wynikowe, które wygenerował nam skrypt napisany w php.  Gdy odpalamy taki skrypt to wynikiem jego działania na końcu przeważnie jest kod html, który po przesłaniu do przeglądarki internetowej i interpretacji (ang. parsing) przez przeglądarkę tego kodu, oczom użytkownika ukazuje się strona internetowa jako efekt końcowy. Za pomocą php można generować też: dokumenty, obrazki, pliki muzyczne itp. Domyślnie php generuje kod html, ale prze ustawienie odpowiednich header'ów można generować w. w. pliki.

Można ten wynik zapisać bezpośrednio z przeglądarki jako plik .html, ale nie jest to zbyt wygodne. Można ten proces zautomatyzować i zrobić to bezpośrednio w tym pliku .php.

Użyjemy do tego kilku funkcji w PHP. Na samym początku skryptu umieszczamy:

ob_start();

Funkcja ta włącza buforowanie danych. Następnie na samym końcu skryptu wklejamy poniższy kod:

$strona_wynikowa = ob_get_contents();

$plik = fopen('plik.html', 'w');
fwrite($plik, $strona_wynikowa);
fclose($plik);

ob_end_flush();

I teraz tak, do zmiennej $strona_wynikowa przypisujemy za pomocą funkcji ob_get_contents() zawartość bufora wyjściowego. Następnie tworzymy plik HTML o nazwie plik.html w którym zapisane będą, wszystkie dane wynikowe wykonanego skryptu php. Plik zapisze się na serwerze w tym samym katalogu, gdzie znajduje się plik ze skryptem .php

Ostatnią funkcję można zastąpić inną ob_end_clean(), dzięki której nic nie będzie się wyświetlać w przeglądarce, tylko zapisze się plik do html na serwerze.

komentarz 2 grudnia 2020 przez użytkownika anonimowy

Czyli przydatne gdy chce sobie zapisac tak jakby obraz wygenerowanej strony z php do html. Ciekawe podejscie.enlightened

komentarz 2 lipca 2021 przez użytkownika anonimowy
Przydatne przy pisaniu scraperów
...