Ob_start - Włącz buforowanie wyjścia. Używanie ob_start podczas wspierania projektów php Słaby start wyszukiwania php

Zacznij szukać to porywacz przeglądarki, który jest promowany za pośrednictwem innych bezpłatnych plików do pobrania, a po zainstalowaniu zmieni stronę główną przeglądarki na start-search.com search.yahoo.com.

Strona główna start-search.com będzie wyświetlać reklamy i linki sponsorowane w wynikach wyszukiwania, a także może zbierać wyszukiwane hasła na podstawie zapytań. Przejęcie start-search.com służy do zwiększenia przychodów z reklam, na przykład w przypadku stosowania SEO blackhat w celu zawyżenia rankingu strony witryny w wynikach wyszukiwania.

Start Search Technicznie rzecz biorąc, nie jest to wirus, ale wykazuje wiele złośliwych cech, takich jak możliwości rootkitów wnikających głęboko do systemu operacyjnego, przejmowanie kontroli nad przeglądarką i ogólnie po prostu zakłócanie komfortu użytkownika. W branży ogólnie określa się go jako „PUP” lub potencjalnie niechciany program.
Start Search to wtyczka obsługiwana przez reklamy (użytkownicy mogą zobaczyć dodatkowe banery, reklamy w wyszukiwarce, wyskakujące okienka, reklamy śródmiąższowe i reklamy z linkami tekstowymi) wtyczka do przeglądarek internetowych Internet Explorer (BHO) i Firefox/Chrome (wtyczka) oraz dystrybuowane za pośrednictwem różnych platform monetyzacji podczas instalacji. Rozszerzenie przeglądarki zawiera różne funkcje, które modyfikują domyślne lub niestandardowe ustawienia przeglądarki, w tym stronę główną, ustawienia wyszukiwania, a w niektórych przypadkach modyfikują próg czasu ładowania przeglądarki Internet Explorer, umieszczają plik blokady w przeglądarce Firefox, aby zapobiec zmianie ustawień konkurencyjnego oprogramowania a także wyłącz Politykę bezpieczeństwa treści przeglądarki, aby umożliwić wykonywanie skryptów między witrynami wtyczki.

Strona główna Start Search pojawiła się na Twoim komputerze po zainstalowaniu darmowego oprogramowania (nagrywanie/strumieniowanie wideo, menedżery pobierania lub twórcy plików PDF), które zawierało w swojej instalacji tego porywacza przeglądarki.
Na przykład, instalując VPlay, zgadzasz się również na zmianę strony głównej przeglądarki na start-search.com i domyślną wyszukiwarkę search.yahoo.com


Jednak po odinstalowaniu VPlay ze swojego komputera domyślne ustawienia przeglądarki internetowej nie zostaną przywrócone. Oznacza to, że będziesz musiał ręcznie usunąć stronę główną start-search.com ze swojej ulubionej przeglądarki internetowej.

Powinieneś zawsze zwracaj uwagę podczas instalowania oprogramowania ponieważ często instalator oprogramowania zawiera opcjonalne instalacje, takie jak ten porywacz przeglądarki start-search.com. Bądź bardzo ostrożny, co zgadzasz się zainstalować.
Zawsze wybieraj instalację niestandardową i odznacz wszystko, co nie jest znane, zwłaszcza opcjonalne oprogramowanie, którego nigdy nie chciałeś pobierać i instalować. Jest rzeczą oczywistą, że nie należy instalować oprogramowania, któremu nie ufasz.

Jak usunąć start-search.com (Poradnik usuwania wirusów)

Ta strona to kompleksowy przewodnik, który usunie start-search.com z przeglądarek Internet Explorer, Firefox i Google Chrome.
Proszę wykonać wszystkie kroki we właściwej kolejności. Jeśli masz jakiekolwiek pytania lub wątpliwości w dowolnym momencie, ZATRZYMYWAĆ SIĘ i poproś o naszą pomoc.




KROK 1: Odinstaluj złośliwe programy start-search.com ze swojego komputera

W tym pierwszym kroku postaramy się zidentyfikować i usunąć każdy złośliwy program, który może być zainstalowany na Twoim komputerze.

Jeśli masz problemy podczas próby odinstalowania programu start-search.com, możesz całkowicie usunąć ten niechciany program ze swojego komputera.

KROK 2: Usuń wirusa start-search.com z przeglądarek Internet Explorer, Firefox i Google Chrome

Usuń wirusa start-search.com z Internet Explorera

Możesz zresetować ustawienia programu Internet Explorer, aby przywrócić je do stanu, w jakim znajdowały się podczas pierwszej instalacji programu Internet Explorer na komputerze.

Usuń wirusa start-search.com z Mozilla Firefox

Jeśli masz problemy z przeglądarką Firefox, pomocne może być jej zresetowanie. Poprawka resetowania powoduje wiele problemów, przywracając Firefoksa do domyślnego stanu fabrycznego, zapisując jednocześnie najważniejsze informacje, takie jak zakładki, hasła, informacje o automatycznym wypełnianiu formularzy internetowych, historię przeglądania i otwarte karty.

Notatka: Twój stary profil Firefoksa zostanie umieszczony na pulpicie w folderze o nazwie „ Dane starego Firefoksa„. Jeśli reset nie rozwiązał problemu, możesz przywrócić część niezapisanych informacji, kopiując pliki do nowego utworzonego profilu. Jeśli nie potrzebujesz już tego folderu, usuń go, ponieważ zawiera poufne informacje.

Usuń wirusa start-search.com z Google Chrome

KROK 3: Usuń porywacza przeglądarki start-search.com za pomocą AdwCleaner

Narzędzie AdwCleaner przeskanuje Twój komputer i przeglądarkę internetową w poszukiwaniu złośliwych plików „start-search.com”, rozszerzeń przeglądarki i kluczy rejestru, które mogły zostać zainstalowane na Twoim komputerze bez Twojej wiedzy.

KROK 4: Usuń wirusa start-search.com ze swojego komputera za pomocą programu Malwarebytes Anti-Malware Free

Malwarebytes Anti-Malware Free wykorzystuje wiodącą w branży technologię do wykrywania i usuwania wszelkich śladów złośliwego oprogramowania, w tym robaków, trojanów, rootkitów, oszustów, dialerów, oprogramowania szpiegującego i innych.
Należy pamiętać, że Malwarebytes Anti-Malware działa dobrze i powinien działać razem z oprogramowaniem antywirusowym bez konfliktów.

  1. Możesz pobrać pobierz Malwarebytes Anti-Malware z poniższego linku.
    (Ten link otworzy nową stronę internetową, z której możesz pobrać darmowy program Malwarebytes Anti-Malware)
  2. Po pobraniu zamknij wszystkie programy, a następnie kliknij dwukrotnie ikonę na pulpicie o nazwie „ mbam-setup-consumer-2.00.xx” aby rozpocząć instalację Malwarebytes Anti-Malware.

    Może zostać wyświetlone okno dialogowe Kontrola konta użytkownika z pytaniem, czy chcesz uruchomić ten plik. Jeżeli tak się stanie, należy kliknąć „ Tak”, aby kontynuować instalację.
  3. Po rozpoczęciu instalacji zobaczysz który przeprowadzi Cię przez proces instalacji.


    Aby zainstalować Malwarebytes Anti-Malware na swoim komputerze, postępuj zgodnie z instrukcjami klikając przycisk „ Następny" przycisk.

  4. Po zainstalowaniu program Malwarebytes Anti-Malware uruchomi się automatycznie i zostanie wyświetlony komunikat informujący o konieczności aktualizacji programu oraz o tym, że w systemie nigdy nie przeprowadzano skanowania. Aby rozpocząć skanowanie systemu, możesz kliknąć „ Napraw teraz" przycisk.


    Alternatywnie możesz kliknąć przycisk „ Skanowanie„załóż i wybierz” Skanowanie zagrożeń„, a następnie kliknij "Skanuj teraz" przycisk.

  5. Malwarebytes Anti-Malware sprawdzi teraz dostępność aktualizacji i jeśli takie istnieją, będziesz musiał kliknąć „ Aktualizuj teraz" przycisk.

  6. Malwarebytes Anti-Malware rozpocznie teraz skanowanie komputera w poszukiwaniu wirusa start-search.com. Podczas skanowania Malwarebytes Anti-Malware będzie wyglądać jak na obrazku poniżej.

  7. Po zakończeniu skanowania zostanie wyświetlony ekran pokazujący infekcje złośliwym oprogramowaniem wykryte przez program Malwarebytes Anti-Malware. Aby usunąć szkodliwe programy znalezione przez Malwarebytes Anti-malware, kliknij przycisk „ Kwarantanna wszystkich”, a następnie kliknij przycisk „ Aplikuj teraz" przycisk.


    Należy pamiętać, że wykryte infekcje mogą różnić się od pokazanych na obrazku.
  8. Malwarebytes Anti-Malware podda teraz kwarantannie wszystkie znalezione złośliwe pliki i klucze rejestru. Podczas usuwania plików program Malwarebytes Anti-Malware może wymagać ponownego uruchomienia komputera w celu usunięcia niektórych z nich. Jeśli wyświetli się komunikat informujący o konieczności ponownego uruchomienia komputera, zezwól mu na to.


    Po ponownym uruchomieniu komputera powinieneś otworzyć Malwarebytes Anti-Malware i wykonać kolejne skanowanie „Skanowanie zagrożeń”, aby sprawdzić, czy nie ma pozostałych zagrożeń

KROK 5: Dokładnie sprawdź infekcję start-search.com za pomocą HitmanPro

HitmanPro to skaner drugiej opinii, zaprojektowany w celu ratowania Twojego komputera przed złośliwym oprogramowaniem (wirusami, trojanami, rootkitami itp.), które zainfekowało Twój komputer pomimo wszystkich podjętych środków bezpieczeństwa (takich jak oprogramowanie antywirusowe, zapory ogniowe itp.). HitmanPro został zaprojektowany do współpracy z istniejącymi programami bezpieczeństwa bez żadnych konfliktów. Skanuje komputer szybko (mniej niż 5 minut) i nie spowalnia komputera.

Wstęp

System Balsa, oparty na Xubuntu 10.04 (przezroczystej) wersji Linuksa, jest dostępny do użytku w wersji beta. Na tej stronie dowiesz się, czego potrzebujesz, aby pobrać i uruchomić Balsę, a następnie znajdziesz instrukcje, jak to zrobić.

Balsa używa karty SD do działania na komputerze. Na karcie SD musi być zainstalowany system Balsa, zanim będzie można jej użyć do uruchomienia Balsy.

Możesz wyprodukować kartę SD Balsa na jednym komputerze i uruchomić ją na innym komputerze. Komputer, na którym go tworzysz, nie musi obsługiwać samej Balsy.

Co jest potrzebne do uruchomienia Balsy

Aby uruchomić Balsę, będziesz potrzebować:

Aby wyprodukować kartę SD Balsa, komputer, na którym ją wyprodukujesz, będzie potrzebował 5 lub 9 gigabajtów miejsca podczas tworzenia karty.

Uwaga dotycząca czytników kart SD

W niektórych starszych laptopach czytnik SD nie obsługuje kart SD o pojemności 4 lub 8 gigabajtów. Inne czytniki kart SD używane w niektórych komputerach Dell nie współpracują z systemem Balsa. W każdym z tych przypadków Balsę można uruchomić na oddzielnym czytniku kart SD USB.

Karty SD Balsa są dostępne w wersjach 4 lub 8 gigabajtowych. Każdą wersję można utworzyć na komputerze z systemem Windows lub Linux. Zarówno Windows, jak i Linux używają tego samego pobranego pliku dla karty, a zbudowana karta będzie identyczna z kartą w drugim systemie. Wybierz jeden z nich.

PHP udostępnia kilka funkcji, które wyszukują jeden ciąg znaków w innym. Niektóre zwracają lokalizację znalezionego ciągu (strpos, strrpos i powiązane) oraz zwracają część oryginalnego ciągu (strstr i strrchr). Funkcje wyszukiwania zwracają wartość false, jeśli szukany ciąg nie znajduje się w oryginale.

Jeśli Twoim celem jest po prostu ustalenie, czy jeden ciąg znaków istnieje w innym, najskuteczniejszą opcją jest strpos .

strpos

Funkcja strpos przeszukuje swój pierwszy argument w postaci drugiego argumentu i zwraca lokalizację indeksu liczoną od zera pierwszego dopasowania w ciągu lub wartość false, jeśli nie zostanie znaleziona. Poniższy przykład demonstruje:

$str = ; // wyszukaj pierwsze wystąpienie „need” w obrębie $str$pos = strpos($str, "potrzeba"); // typ wyświetlania i wartość $pos var_dump ($pos) ; //int(3)

Chociaż zademonstrowaliśmy wynik za pomocą powyższej komendy var_dump, typowe badanie wartości zwracanej dla strpos przeprowadza się w następujący sposób:

// jak sprawdzić wartość zwracaną przez strpos ($pos) if ( $pos !== false ) ( // jeśli znaleziono ciąg znaków echo "znalazłem go w lokalizacji $pos" ; ) else ( echo "nie znaleziono." ; )

Pamiętaj, aby użyć operatorów === lub !== w celu porównania wartości zwracanej przez funkcję strpos z false . Jeśli na początku łańcucha zostanie znaleziony podciąg, strpos zwróci 0 , co operatory == lub != zostanie przekonwertowany na false .

Możesz określić przesunięcie, aby rozpocząć wyszukiwanie o określoną liczbę znaków od początku ciągu, jak pokazano w tym przykładzie:

/* argumenty strpos: * ciąg tematyczny (aka stóg siana), ciąg wyszukiwania (igła), przesunięcie (opcjonalnie) */ // rozpocznij wyszukiwanie „potrzeby” od znaku 10 w $str$pos = strpos ($str, „potrzeba”, 10 ) ; // 20

Rozpoczynając wyszukiwanie od znaku 10, wynikiem jest 20, czyli położenie indeksu początku słowa igła.

strpo

Funkcja strrpos znajduje pozycję ostatniego wystąpienia podłańcucha w ciągu:

// przykładowy ciąg znaków używany do wyszukiwania$str = „Musimy znaleźć igłę w stogu siana”.; // znajdź lokalizację ostatniego wystąpienia „potrzeby” w $str$pos = strrpos ($str, „potrzeba”); // 20

Funkcja strrpos udostępnia również opcjonalny parametr przesunięcia, który może być dodatni lub ujemny. Jeśli przesunięcie jest dodatnie, ta liczba znaków na początku ciągu zostanie wykluczona z wyszukiwania. Rozważ następujący przykład:

// wyszukaj od prawej strony „My” z wyłączeniem pierwszych 3 znaków$pos = strrpos ($str, "My", 3) ; var_dump ($pos) ; //bool(fałsz)

Wynik jest fałszywy, ponieważ „My” nie zostanie znalezione, gdy wyszukiwanie wyklucza pierwsze trzy znaki.

Jeśli przesunięcie jest ujemne, z wyszukiwania wyklucza się tę liczbę znaków na końcu ciągu. Demonstrujemy to za pomocą dwóch wyszukiwań określających przesunięcie ujemne:

// wyszukaj od prawej strony „siano” z wyłączeniem 5 ostatnich znaków$pos = strrpos ($str, "siano", - 5) ; //int(34) // szukaj od prawej strony z wyłączeniem ostatnich 10 znaków$pos = strrpos ($str, "siano", - 10) ; //bool(fałsz)

Ostatni wynik powyżej jest fałszywy, ponieważ „siano” nie zostanie znalezione, gdy wyszukiwanie wyklucza ostatnie 10 znaków.

Zauważ, że wartość zwracana przez funkcję strrpos podaje lokalizację od początku ciągu, nawet jeśli wyszukiwanie rozpoczyna się od prawej strony.

stripo i stripo

Funkcje strpos i strrpos wykonują wyszukiwanie z uwzględnieniem wielkości liter. PHP udostępnia funkcje stripos i strripos umożliwiające wyszukiwanie bez uwzględniania wielkości liter. Działają tak samo jak ich odpowiedniki, w których rozróżniana jest wielkość liter:

// przykładowy ciąg znaków używany do wyszukiwania$str = „Musimy znaleźć igłę w stogu siana”.; // wyszukuj „my” bez uwzględniania wielkości liter$pos = stripos($str, "my"); //int(0) // przeprowadź wyszukiwanie bez uwzględniania wielkości liter od prawej strony dla „Potrzeba”$pos = strripos($str, "Potrzeba"); //int(20)

Wyszukiwanie „my” bez uwzględniania wielkości liter daje w wyniku 0, co oznacza, że ​​znaleziono je na początku ciągu, którego szukamy. Wyszukiwanie „Need” bez uwzględniania wielkości liter po prawej stronie (przy użyciu strripos) powoduje znalezienie go w lokalizacji 20 .

strstr

Funkcja strstr przeszukuje pierwszy argument w postaci ciągu znaków dla drugiego. Jeśli drugie zostanie znalezione w pierwszym, strstr zwraca część oryginalnego ciągu, zaczynając od pierwszego znalezionego wystąpienia, aż do końca ciągu.

// przykładowy ciąg $str = „Musimy znaleźć igłę w stogu siana”.; // wyszukaj „the” w $str $newstr = strstr ($str , „the” ); var_dump ($newstr) ; // string(27) "igła w stogu siana."

Funkcja strstr zwraca pierwsze znalezione „the” wraz z resztą oryginalnego ciągu.

Jeśli przekażesz true jako trzeci argument do strstr , część oryginalnego ciągu zanim znaleziony ciąg jest zwracany:

// pass true, aby zwrócić część $str przed „the”$newstr = strstr ($str, "the", prawda) ; var_dump ($newstr) ; // string(16) „Musimy znaleźć”

Tym razem funkcja strstr zwraca wszystko przed pierwszym „the” w ciągu.

PHP udostępnia także funkcję stristr, która działa dokładnie tak samo jak strstr, z tą różnicą, że wykonuje wyszukiwanie bez rozróżniania wielkości liter.

strhrchr

Funkcja strrchr przeszukuje pierwszy argument ciągu od prawej strony pod kątem znaku, który określimy w drugim argumencie. Funkcja zwraca część ciągu od lokalizacji znalezionej instancji tego znaku do końca ciągu:

// przykładowy ciąg $str = „Musimy znaleźć igłę w stogu siana”.; // wyszukaj od prawej strony „s” w $str$newstr = strstr ($str, "s" ); var_dump ($newstr) ; // string(6) "stos."

Zauważ, że w przeciwieństwie do strstr , jeśli drugi argument składa się z wielu znaków, używany jest tylko pierwszy:

// test z wieloznakowym drugim argumentem$newstr = strrchr ($str, "the" ); var_dump ($newstr) ; // string(5) "takt."

Zamiast zwracać „stóg siana”, funkcja strrchr zwraca „tack”, stosując do wyszukiwania tylko pierwszą literę drugiego argumentu.

Witaj, Habro!

Dzisiaj chciałbym przedstawić początkującym webmasterom różne ciekawe sposoby wykorzystania buforowania danych wyjściowych w PHP. Doświadczeni webmasterzy raczej nie znajdą tu niczego przydatnego. Chociaż – kto wie?

Jak wszyscy wiecie, buforowanie wyjścia w php jest kontrolowane przez zestaw funkcji zaczynających się od „ob_”. Najważniejszym z nich jest ob_start. Po uruchomieniu zbiera kolejne dane wyjściowe, czyli wszelkiego rodzaju print(), echo itp., które następnie są przekazywane odwiedzającemu w postaci strony HTML. A jeśli zaczniemy buforować przed wysłaniem, to w końcu będziemy mogli coś zrobić z tą prawie gotową stroną.


Na przykład chcemy odfiltrować wszystkie linki do stron zewnętrznych.

Na naszym forum, starym jak topór Australopiteka, roi się od spamerów, wabiących gości do miejsc pełnych rozpusty, jednorękich bandytów i agitacji politycznej. Moglibyśmy użyć js do śledzenia, ale zamiast tego chcemy zmienić wszystkie te linki w następujący sposób:

"http://blackjack-hookers.com" => "http://myoldforum.ru/redirect.php?url=blackjack-hookers.com"

Metoda może nie jest najskuteczniejsza, ale skuteczna. Napisaliśmy redirect.php z filtrem i czarną listą, a teraz musimy przekonwertować wszystkie linki na tysiącach stron forum. Używając ob_start i kilku wyrażeń regularnych, możemy to zrobić w zaledwie kilku linijkach:

Funkcja f_callback($buffer)( $buffer = preg_replace("#http://(www.)?myoldforum\.ru/#","/",$buffer); $buffer = preg_replace("#href="http ://([^"]*)"#","#href="/redirect\.php\?url=$1",$buffer); zwróć $bufor; ) ob_start(f_callback);

Teraz, umieszczając ten kod na początku pliku Index.php lub innego pliku, do którego serwer uzyskuje dostęp podczas przeglądania stron, otrzymamy to, czego potrzebujemy.

Zmieniając w ten sposób treść, nie jesteśmy ograniczeni metodami silnika. To może być dość cenne. Możesz na przykład dodać wtyczkę:

Funkcja generate_plugin() ( /*wygeneruj coś*/ ) funkcja f_callback($buffer)( /*...*/ $buffer = str_replace ("",generate_plugin(),$buffer); /*...*/ return $buffer; ) ob_start("f_callback");

Teraz, gdzie dodaliśmy treść, pojawi się to, czego chcieliśmy. Jednym z zastosowań jest wstawienie widgetu js na stronę internetową. Na przykład mapy Yandex. Zwykle nie jest to trudne, ale czasami źle napisany edytor stron internetowych wymyka się cudzysłowom i nawiasom klamrowym, psując widżet. Jak widać, problem ten można łatwo rozwiązać.

Zestaw narzędzi PHP do pracy z buforem wyjściowym jest bogaty i nie ogranicza się tylko do ob_start. Metody opisane powyżej w niektórych przypadkach wymagają zbyt dużych zasobów i są kłopotliwe, ponieważ działają na całej stronie. Możemy przetworzyć tylko część, tworząc opakowanie w szablonie wokół generowania czegoś, w co nie chcemy się zagłębiać, ale zdecydowanie należy to naprawić:

(GENERUJ DUŻĄ SZALONĄ RZECZ)

Na pewno zauważyłeś już te wszystkie zwroty: „Nie chcę się w to zagłębiać”, „stary jak krzesło tyranozaura”, „krzywo napisany redaktor”… W idealnym świecie powłoki wokół bufora wyjściowego są nie są potrzebne. Wszystko, co można zrobić za pomocą ob_start, teoretycznie można zrobić bez niego. Technika ta czasami wprowadza zamieszanie w kodzie projektu; wielu widzi jej znaczenie jedynie w wysyłaniu danych wyjściowych do ob_gzhandler w celu kompresji i uważa jej użycie w innych przypadkach za niebezpieczne. Ale często po prostu nie można obejść się bez kontroli mocy wyjściowej.

Zwłaszcza jeśli nie chcesz kopać głęboko.

(PHP 4, PHP 5, PHP 7)

ob_start — Włącz buforowanie wyjścia

Opis

Bool ob_start ([ możliwy do wywołania$output_callback = ZERO [, int $chunk_size = 0 [, int $flagi = PHP_OUTPUT_HANDLER_STDFLAGS ]]])

Ta funkcja umożliwia buforowanie wyjścia. Jeśli buforowanie wyjściowe jest aktywne, dane wyjściowe skryptu nie są wysyłane (z wyjątkiem nagłówków), ale są przechowywane w buforze wewnętrznym.

Zawartość tego wewnętrznego bufora można skopiować do zmiennej łańcuchowej za pomocą ob_get_contents(). Aby wyprowadzić zawartość wewnętrznego bufora, powinieneś użyć ob_end_flush(). Alternatywnie możesz użyć ob_end_clean() aby zniszczyć zawartość bufora.

Uwaga

Niektóre serwery WWW (na przykład Apache) zmieniają katalog roboczy skryptu po wywołaniu funkcji wywołania zwrotnego. Możesz go odzyskać za pomocą chdir(nazwa_katalogu($_SERVER["NAZWA_PLIKU_SCRIPT"])) w funkcji wywołania zwrotnego.

Bufory wyjściowe są umieszczane na stosie, co oznacza, że ​​dozwolone są wywołania ob_start() po wywołaniu innego aktywnego ob_start(). W takim wypadku należy zadzwonić ob_end_flush() odpowiednią ilość razy. Jeśli aktywnych jest wiele funkcji wywołania zwrotnego, dane wyjściowe są filtrowane sekwencyjnie dla każdej z nich w kolejności zagnieżdżenia.

Lista parametrów

Można określić opcjonalny parametr wyjściowy_callback. Ta funkcja przyjmuje ciąg jako argument i musi również zwrócić ciąg. Jest wywoływana, gdy reset (wysyłanie) lub czyszczenie (przy użyciu ob_flush(), ob_clean() lub podobne funkcje) lub jeśli bufor wyjściowy jest opróżniany do przeglądarki na końcu żądania. Po wywołaniu funkcja Output_callback odbiera zawartość bufora i musi zwrócić zaktualizowaną zawartość, aby bufor wyjściowy mógł zostać wysłany do przeglądarki. Jeśli wyjście_wywołanie zwrotne nie jest prawidłową funkcją, zwróci udokumentowana funkcja FAŁSZ. Opis funkcji tego parametru:

Strunowy treser (ciąg $bufor [, int $faza ])

Bufor Zawartość bufora wyjściowego. faza Maska bitowa stałych PHP_OUTPUT_HANDLER_*.

Jeśli wyjście_callback zwróci FAŁSZ, wówczas oryginalne informacje zostaną przesłane do przeglądarki bez zmian.

Parametr wyjściowy_callback można zignorować, przekazując wartość ZERO.

ob_end_clean(), ob_end_flush(), ob_clean(), ob_flush() I ob_start() nie można wywołać z funkcji wywołania zwrotnego, ponieważ ich zachowanie jest nieprzewidywalne. Jeśli chcesz usunąć zawartość bufora, zwróć „” (pusty ciąg znaków) z funkcji wywołania zwrotnego. Nie można także wywoływać funkcji print_r($wyrażenie, prawda) Lub plik_podświetlenia($nazwa pliku, prawda) z funkcji wywołania zwrotnego buforującego dane wyjściowe.

Komentarz:

W PHP 4.0.4 funkcja ob_gzhandler() został wprowadzony, aby ułatwić wysyłanie danych zakodowanych w formacie gz do przeglądarek internetowych obsługujących skompresowane strony internetowe. ob_gzhandler() określa typ kodowania treści akceptowany przez przeglądarkę i odpowiednio zwraca dane wyjściowe.

rozmiar_porcji

Jeśli zostanie przekazany opcjonalny parametr chunk_size, bufor zostanie opróżniony po każdym wyjściu o rozmiarze większym lub równym chunk_size. Domyślna wartość 0 oznacza, że ​​funkcja wyjściowa zostanie wywołana po zamknięciu bufora.

Przed PHP 5.4.0 wartość 1 była specjalną wartością ustawiającą parametr rozmiar_porcji o 4096.

Parametr flags jest maską bitową kontrolującą operacje, które można wykonać na buforze wyjściowym. Domyślnie umożliwia opróżnianie, opróżnianie i usuwanie bufora wyjściowego, co jest tym samym, co | | , Lub PHP_OUTPUT_HANDLER_STDFLAGS jako skrót tej kombinacji.

Każda flaga kontroluje dostęp do zestawu funkcji, jak opisano poniżej:

Stały Funkcje
PHP_OUTPUT_HANDLER_CLEANABLE ob_clean(), ob_end_clean(), I ob_get_clean().
PHP_OUTPUT_HANDLER_FLUSHABLE ob_end_flush(), ob_flush(), I ob_get_flush().
PHP_OUTPUT_HANDLER_REMOVABLE ob_end_clean(), ob_end_flush(), I ob_get_flush().

Zwróć wartości

Zwroty PRAWDA po pomyślnym zakończeniu lub FAŁSZ w przypadku błędu.

Lista zmian

Wersja Opis
7.0.0 Jeśli ob_start() użyte wewnątrz funkcji wywołania zwrotnego bufora wyjściowego, funkcja ta nie będzie już generować błędu E_BŁĄD, ale zamiast tego zadzwoni E_RECOVERABLE_ERROR, pozwalając zewnętrznym programom obsługi błędów je przechwycić.
5.4.0 Trzeci parametr ob_start() zmieniono z logicznej ( wartość logiczna) parametru kasowania (który, gdy jest ustawiony na FAŁSZ zapobiegł usunięciu bufora do czasu zakończenia skryptu) na liczbę całkowitą ( liczba całkowita) parametr flagi. Niestety oznacza to niekompatybilność API dla kodu, który używał trzeciego parametru przed PHP 5.4.0. Zobacz przykład flag, aby zrozumieć, jak pracować z kodem, aby był kompatybilny z obiema wersjami.
5.4.0 Parametr rozmiar_porcji, zainstalowany w 1 , powoduje teraz wyprowadzenie 1 bajtu do bufora wyjściowego.
4.3.2 Funkcja powróci FAŁSZ w przypadku, gdy nie można wykonać wywołania wyjściowego.

Przykłady

Przykład #1 Przykład funkcji wywołania zwrotnego zdefiniowanej przez użytkownika

Funkcja zwrotna (bufor $)
{
// zamień wszystkie jabłka na pomarańcze
return (str_replace("jabłka", "pomarańcze", $bufor));
}

Ob_start("oddzwonienie");

?>


To jakby porównywać jabłka i pomarańcze.






ob_end_flush();