W trakcie pracy skrypty php mogą wyświetlać wyniki podczas wykonywania skryptu lub gromadzić dane, czekając na pełne wykonanie skryptu i zakończenie skryptu. Wybór jednej z tych opcji zależy od wartości przypisanej w ustawieniach interpretera php zmiennej odpowiedzialnej za buforowanie wyjścia danych. Można to zmienić na kilka sposobów.
Instrukcje
Krok 1
Jeśli musisz wyłączyć buforowanie wyjścia dla wszystkich skryptów php działających na serwerze lub w witrynie, najodpowiedniejszym sposobem na zrobienie tego jest użycie pliku php.ini. Przy uruchamianiu każdego skryptu interpreter języka php odczytuje ustawienia z tego pliku konfiguracyjnego, więc umieszczenie w nim dyrektywy wyłączającej buforowanie wyjścia wyjścia skryptów jest najbardziej optymalnym rozwiązaniem. Otwórz plik w dowolnym edytorze tekstu i użyj okna dialogowego wyszukiwania, aby znaleźć dyrektywę o nazwie output_buffering. Jej wartością może być zmienna całkowita lub logiczna (On lub Off), więc zamiast wartości domyślnej wpisz Off lub 0. Jeśli tej dyrektywy nie ma w pliku konfiguracyjnym, dodaj dodatkowy wiersz na końcu wpisów:
buforowanie_wyjściowe = Wyłączone
Krok 2
Jeśli musisz wyłączyć buforowanie wyjścia dla skryptów osobnego folderu lub grupy podfolderów, lepiej zrobić to za pomocą pliku htaccess. Znajdź go w żądanym katalogu i otwórz w edytorze tekstu. Jeśli nie ma jeszcze takiego pliku, utwórz nowy. Dyrektywa, którą należy dodać, jest podobna do tej opisanej w poprzednim kroku, ale przed nią należy zaznaczyć, że jest to jedno z ustawień php. Cała linia powinna wyglądać tak:
php_flag output_buffering wyłączone
Umieść utworzony plik htaccess w górnym folderze hierarchii katalogów, dla której ma zostać wykonana dyrektywa.
Krok 3
Aby wyłączyć buforowanie w pojedynczym skrypcie php, użyj jednej z wbudowanych funkcji tego języka. ob_get_flush () zwraca bieżącą zawartość bufora, a następnie wyzerowuje go i wyłącza buforowanie wyjścia. ob_end_flush() robi to samo, ale nie zwraca bieżącej zawartości bufora do zmiennej, która go wywołała, ale wysyła ją do urządzenia wyjściowego. Ob_end_clean () po prostu usuwa bieżące dane przed wyłączeniem buforowania. Używając jednej z tych funkcji, nie zapomnij ponownie włączyć buforowania - służy do tego funkcja ob_start().