Ob_start - Povolí ukladanie výstupov do vyrovnávacej pamäte. Používanie ob_start pri podpore php projektov Slabé vyhľadávanie php štart

Spustite vyhľadávanie je prehliadač únosca, ktorý je propagovaný prostredníctvom iných bezplatných stiahnutí a po nainštalovaní zmení domovskú stránku vášho prehliadača na start-search.com search.yahoo.com.

Domovská stránka start-search.com zobrazí reklamy a sponzorované odkazy vo vašich výsledkoch vyhľadávania a môže zhromažďovať hľadané výrazy z vašich vyhľadávacích dopytov. Únos start-search.com sa používa na zvýšenie príjmov z reklamy, napríklad pri používaní blackhat SEO, na zvýšenie hodnotenia stránky vo výsledkoch vyhľadávania.

Spustite vyhľadávanie, technicky to nie je vírus, ale vykazuje množstvo škodlivých vlastností, ako sú napríklad schopnosti rootkitu začleniť sa hlboko do operačného systému, únos prehliadača a vo všeobecnosti len zasahovanie do používateľskej skúsenosti. Priemysel to vo všeobecnosti označuje ako „PUP“ alebo potenciálne nechcený program.
Začať vyhľadávanie je podporovaný reklamou (používateľom sa môžu zobraziť ďalšie bannerové, vyhľadávacie, kontextové, kontextové reklamy, intersticiálne reklamy a reklamy s odkazmi v texte) doplnok pre rôzne webové prehliadače pre Internet Explorer (BHO) a Firefox/Chrome (doplnok) a distribuované prostredníctvom rôznych monetizačných platforiem počas inštalácie. Rozšírenie prehliadača obsahuje rôzne funkcie, ktoré zmenia predvolené alebo vlastné nastavenia prehliadača vrátane domovskej stránky, nastavení vyhľadávania av niektorých prípadoch upravia prahovú hodnotu času načítania prehliadača Internet Explorer, umiestnia súbor zámku do Firefoxu, aby zabránili konkurenčnému softvéru zmeniť svoje nastavenia. ako aj zakázať zásady zabezpečenia obsahu prehliadača, aby sa umožnilo skriptovanie doplnku medzi stránkami.

Domovská stránka Spustiť vyhľadávanie sa na váš počítač dostala po nainštalovaní bezplatného softvéru (nahrávanie/streamovanie videa, správcovia sťahovania alebo tvorcovia PDF), ktorý do svojej inštalácie pribalil tento únosca prehliadača.
Napríklad, keď si nainštalujete VPlay, súhlasíte aj so zmenou domovskej stránky prehliadača na start-search.com a predvolený vyhľadávací nástroj search.yahoo.com


Keď však VPlay odinštalujete z počítača, predvolené nastavenia webového prehliadača sa neobnovia. To znamená, že budete musieť manuálne odstrániť domovskú stránku start-search.com z vášho obľúbeného webového prehliadača.

Mal by si vždy dávajte pozor pri inštalácii softvéru pretože často inštalačný program softvéru obsahuje voliteľné inštalácie, ako napríklad tento únosca prehliadača start-search.com. Buďte veľmi opatrní, čo súhlasíte s inštaláciou.
Vždy sa rozhodnite pre vlastnú inštaláciu a zrušte výber všetkého, čo nie je známe, najmä voliteľného softvéru, ktorý ste nikdy nechceli stiahnuť a nainštalovať. Je samozrejmé, že by ste nemali inštalovať softvér, ktorému nedôverujete.

Ako odstrániť start-search.com (Sprievodca odstraňovaním vírusov)

Táto stránka je komplexným sprievodcom, ktorý odstráni start-search.com z prehliadača Internet Explorer, Firefox a Google Chrome.
Vykonajte všetky kroky v správnom poradí. Ak máte akékoľvek otázky alebo pochybnosti, STOP a požiadajte nás o pomoc.




KROK 1: Odinštalujte škodlivé programy start-search.com z vášho počítača

V tomto prvom kroku sa pokúsime identifikovať a odstrániť akýkoľvek škodlivý program, ktorý môže byť nainštalovaný na vašom počítači.

Ak máte problémy pri pokuse o odinštalovanie programu start-search.com, môžete použiť na úplné odstránenie tohto nechceného programu z vášho počítača.

KROK 2: Odstráňte vírus start-search.com z prehliadačov Internet Explorer, Firefox a Google Chrome

Odstrániť start-search.com virus z Internet Explorer

Nastavenia programu Internet Explorer môžete resetovať a vrátiť ich do stavu, v ktorom boli pri prvej inštalácii programu Internet Explorer na vašom počítači.

Odstrániť start-search.com virus z Mozilla Firefox

Ak máte problémy s Firefoxom, môže vám pomôcť jeho resetovanie. Oprava resetu obsahuje veľa problémov obnovením Firefoxu do predvoleného továrenského stavu a zároveň ukladaním základných informácií, ako sú záložky, heslá, informácie o automatickom vypĺňaní webových formulárov, história prehliadania a otvorené karty.

Poznámka: Váš starý profil Firefoxu bude umiestnený na vašej ploche v priečinku s názvom „ Staré údaje Firefoxu“. Ak reset nevyriešil váš problém, môžete obnoviť niektoré neuložené informácie skopírovaním súborov do nového profilu, ktorý bol vytvorený. Ak tento priečinok už nepotrebujete, mali by ste ho odstrániť, pretože obsahuje citlivé informácie.

Odstrániť start-search.com virus z Google Chrome

KROK 3: Odstráňte únosca prehliadača start-search.com pomocou AdwCleaner

Pomôcka AdwCleaner prehľadá váš počítač a webový prehliadač, či neobsahuje škodlivé súbory „start-search.com“, rozšírenia prehľadávača a kľúče registra, ktoré mohli byť nainštalované do vášho počítača bez vášho vedomia.

KROK 4: Odstráňte vírus start-search.com z počítača pomocou Malwarebytes Anti-Malware Free

Malwarebytes Anti-Malware Free využíva špičkovú technológiu na detekciu a odstránenie všetkých stôp malvéru vrátane červov, trójskych koní, rootkitov, nečestných programov, dialerov, spywaru a ďalších.
Je dôležité poznamenať, že Malwarebytes Anti-Malware funguje dobre a mal by bežať spolu s antivírusovým softvérom bez konfliktov.

  1. Môžete si stiahnuť stiahnite si Malwarebytes Anti-Malware z nižšie uvedeného odkazu.
    (Tento odkaz otvorí novú webovú stránku, odkiaľ si môžete stiahnuť Malwarebytes Anti-Malware Free)
  2. Po stiahnutí zatvorte všetky programy a potom dvakrát kliknite na ikonu na pracovnej ploche s názvom „ mbam-setup-consumer-2.00.xx” spustite inštaláciu Malwarebytes Anti-Malware.

    Môže sa vám zobraziť dialógové okno Kontrola používateľských kont s otázkou, či chcete spustiť tento súbor. Ak sa to stane, mali by ste kliknúť na „ Áno“, aby ste mohli pokračovať v inštalácii.
  3. Po spustení inštalácie sa zobrazí ktorý vás prevedie procesom inštalácie.


    Ak chcete nainštalovať Malwarebytes Anti-Malware na váš počítač, pokračujte podľa pokynov kliknutím na „ Ďalšie tlačidlo “.

  4. Po nainštalovaní sa Malwarebytes Anti-Malware automaticky spustí a zobrazí sa hlásenie, že by ste mali aktualizovať program a že vo vašom systéme nebolo nikdy spustené skenovanie. Ak chcete spustiť kontrolu systému, kliknite na tlačidlo „ Opraviť teraz tlačidlo “.


    Prípadne môžete kliknúť na „ skenovať"tabulátor a výber" Skenovanie hrozieb“, potom kliknite na "Skenovanie teraz" tlačidlo.

  5. Malwarebytes Anti-Malware teraz skontroluje aktualizácie, a ak nejaké existujú, budete musieť kliknúť na „ Teraz aktualizovať tlačidlo “.

  6. Malwarebytes Anti-Malware teraz začne skenovať váš počítač na prítomnosť vírusu start-search.com. Keď Malwarebytes Anti-Malware skenuje, bude to vyzerať ako na obrázku nižšie.

  7. Po dokončení skenovania sa vám teraz zobrazí obrazovka s informáciami o malvérových infekciách, ktoré Malwarebytes' Anti-Malware zistil. Ak chcete odstrániť škodlivé programy, ktoré Malwarebytes Anti-malware našiel, kliknite na „ Karanténa všetkých“ a potom kliknite na „ Nainštalovať teraz tlačidlo “.


    Upozorňujeme, že nájdené infekcie sa môžu líšiť od toho, čo je znázornené na obrázku.
  8. Malwarebytes Anti-Malware teraz umiestni do karantény všetky škodlivé súbory a kľúče registra, ktoré našiel. Pri odstraňovaní súborov môže Malwarebytes Anti-Malware vyžadovať reštart, aby sa niektoré z nich odstránili. Ak sa zobrazí hlásenie, že je potrebné reštartovať počítač, povoľte mu to.


    Po reštartovaní počítača by ste mali otvoriť Malwarebytes Anti-Malware a vykonať ďalšiu kontrolu „Skenovanie hrozieb“, aby ste overili, že neexistujú žiadne zostávajúce hrozby.

KROK 5: Znova skontrolujte infekciu start-search.com pomocou HitmanPro

HitmanPro je skener druhej mienky určený na záchranu vášho počítača pred škodlivým softvérom (vírusy, trójske kone, rootkity atď.), ktorý infikoval váš počítač napriek všetkým bezpečnostným opatreniam, ktoré ste prijali (ako je antivírusový softvér, firewally atď.). HitmanPro je navrhnutý tak, aby fungoval spolu s existujúcimi bezpečnostnými programami bez akýchkoľvek konfliktov. Skenuje počítač rýchlo (menej ako 5 minút) a nespomaľuje počítač.

Úvod

Systém Balsa, založený na Xubuntu 10.04 (prehľadnej) verzii Linuxu, je k dispozícii na použitie ako beta softvér. Táto stránka vám povie, čo potrebujete stiahnuť a spustiť Balsa, a potom ukazuje pokyny, ako to urobiť.

Balsa používa SD kartu na spustenie v počítači. Pred použitím na spustenie programu Balsa na SD karte musí byť nainštalovaný systém Balsa.

SD kartu Balsa môžete vytvoriť na jednom počítači a spustiť na inom počítači. Počítač, na ktorom ho vyrábate, nemusí spustiť samotný Balsa.

Čo potrebujete na spustenie balsy

Ak chcete spustiť Balsa, budete potrebovať nasledovné:

Na výrobu SD karty Balsa potrebuje počítač, na ktorom ju vyrábate, 5 alebo 9 gigabajtov priestoru, kým sa karta vyrába.

Poznámka o čítačkách kariet SD

Na niektorých starších prenosných počítačoch čítačka SD nedokáže spracovať 4 alebo 8 gigabajtovú kartu SD. Iné čítačky kariet SD používané niektorými počítačmi Dell nefungujú so systémom Balsa. V každom z týchto prípadov môže byť Balsa spustená na samostatnej USB čítačke SD kariet.

Balsa SD karty sa dodávajú v 4 alebo 8 gigabajtových verziách. Každá verzia môže byť vytvorená na počítači so systémom Windows alebo Linux. Windows aj Linux používajú pre kartu rovnaký stiahnutý súbor a vytvorená karta bude identická s kartou na druhom systéme. Vyberte si jednu z týchto možností.

PHP poskytuje niekoľko funkcií, ktoré hľadajú jeden reťazec v druhom. Niektoré vrátia umiestnenie nájdeného reťazca (strpos , strrpos a súvisiace) a vrátia časť pôvodného reťazca (strstr a strrchr). Funkcie vyhľadávania vrátia hodnotu false, ak sa hľadaný reťazec nenachádza v origináli.

Ak je vaším cieľom jednoducho zistiť, či jeden reťazec existuje v inom reťazci, najefektívnejšou možnosťou je strpos .

strpos

Funkcia strpos vyhľadá v prvom argumente reťazca jeho druhý a vráti umiestnenie indexu založeného na nule prvej zhody v rámci reťazca alebo hodnotu false, ak sa nenájde. Nasledujúci príklad demonštruje:

$str = ; // hľadanie prvého výskytu "need" v $str$pos = strpos($str, "potreba"); // typ zobrazenia a hodnota $pos var_dump ($pos) ; // int(3)

Hoci sme výsledok demonštrovali pomocou var_dump vyššie, typické vyšetrenie návratovej hodnoty pre strpos sa vykonáva takto:

// ako skontrolovať návratovú hodnotu strpos ($pos) if ( $pos !== false ) ( // ak sa nájde hľadaný reťazec echo "našlo sa to na mieste $pos" ; ) else ( echo "nenájdené." ; )

Nezabudnite použiť operátory === alebo !== na porovnanie návratovej hodnoty funkcie strpos s hodnotou false . Ak sa podreťazec nájde na začiatku reťazca, strpos vráti 0 , čo sú operátory == alebo != by sa premenil na nepravdu .

Môžete zadať posun na začatie vyhľadávania o zadaný počet znakov od začiatku reťazca, ako ukazuje tento príklad:

/* argumenty strpos: * predmetový reťazec (aka kopa sena), vyhľadávací reťazec (ihla), offset (voliteľné) */ // začnite hľadať "need" od znaku 10 v $str$pos = strpos ($str , "potreba" , 10 ) ; // 20

Pri spustení vyhľadávania od znaku 10 je výsledkom 20, indexové umiestnenie začiatku slova ihla.

strrpos

Funkcia strrpos nájde pozíciu posledného výskytu podreťazca v reťazci:

// príklad reťazca, ktorý sa má použiť na vyhľadávanie$str = "Musíme nájsť ihlu v kope sena."; // nájsť miesto posledného výskytu "need" v $str$pos = strrpos ($str , "potreba" ) ; // 20

Funkcia strrpos tiež poskytuje voliteľný parameter offsetu, ktorý môže byť kladný alebo záporný. Ak je posun kladný, tento počet znakov na začiatku reťazca bude z vyhľadávania vylúčený. Zvážte nasledujúci príklad:

// hľadajte sprava "My" s výnimkou prvých 3 znakov$pos = strrpos ($str , "My" , 3 ) ; var_dump ($pos) ; //bool(false)

Výsledok je nepravdivý, pretože „My“ sa nenájde, keď vyhľadávanie vylúči prvé tri znaky.

Ak je posun záporný, toľko znakov na konci reťazca bude z vyhľadávania vylúčených. Demonštrujeme pomocou dvoch vyhľadávaní špecifikujúcich záporný posun:

// hľadajte sprava "seno" s výnimkou posledných 5 znakov$pos = strrpos ($str , "seno" , - 5 ) ; // int(34) // vyhľadávanie sprava s výnimkou posledných 10 znakov$pos = strrpos ($str , "seno" , - 10 ) ; //bool(false)

Posledný výsledok uvedený vyššie je nepravdivý, pretože „seno“ sa nenájde, keď vyhľadávanie vylúči posledných 10 znakov.

Všimnite si, že návratová hodnota funkcie strrpos udáva umiestnenie od začiatku reťazca, aj keď vyhľadávanie začína sprava.

pásiky a pásiky

Funkcie strpos a strrpos vykonávajú vyhľadávanie citlivé na veľkosť písmen. PHP poskytuje funkcie stripos a strripos na vykonávanie vyhľadávaní bez ohľadu na veľkosť písmen. Fungujú rovnako ako ich ekvivalenty s rozlišovaním veľkých a malých písmen:

// príklad reťazca, ktorý sa má použiť na vyhľadávanie$str = "Musíme nájsť ihlu v kope sena."; // vyhľadávanie „my“ bez ohľadu na veľkosť písmen$pos = stripos($str, "my"); // int(0) // vyhľadávanie „Potrebujem“ sprava bez rozlišovania malých a veľkých písmen$pos = strripos($str, "Potrebujem"); // int(20)

Výsledkom vyhľadávania „my“ bez ohľadu na veľkosť písmen je 0 , čo znamená, že sa našiel na začiatku reťazca, v ktorom hľadáme. Vyhľadávanie „Potreba“ sprava bez ohľadu na veľkosť písmen (pomocou strripos) ho nájde na mieste 20 .

strstr

Funkcia strstr hľadá v prvom reťazci argument druhý. Ak sa druhý nájde v rámci prvého, strstr vráti časť pôvodného reťazca počnúc prvým nájdeným výskytom po koniec reťazca.

// príklad reťazca $str = "Musíme nájsť ihlu v kope sena."; // hľadanie "the" v $str $newstr = strstr ($str , "the" ) ; var_dump ($newstr) ; // string(27) "ihla v kope sena."

Funkcia strstr vráti prvé nájdené "the" spolu so zvyškom pôvodného reťazca.

Ak zadáte hodnotu true ako tretí argument do strstr , časť pôvodného reťazca predtým nájdený reťazec sa vráti:

// pass true na vrátenie časti $str pred "the"$newstr = strstr ($str , "the" , true ) ; var_dump ($newstr) ; // string(16) "Musíme nájsť"

Tentoraz funkcia strstr vráti všetko pred prvým "the" v reťazci.

PHP tiež poskytuje funkciu stristr, ktorá funguje úplne rovnako ako strstr okrem toho, že vykonáva vyhľadávanie bez ohľadu na veľkosť písmen.

strhrchr

Funkcia strrchr hľadá v prvom argumente reťazca sprava znak, ktorý zadáme v druhom argumente. Funkcia vráti časť reťazca od miesta nájdenej inštancie tohto znaku po koniec reťazca:

// príklad reťazca $str = "Musíme nájsť ihlu v kope sena."; // hľadajte sprava "s" v $str$newstr = strstr ($str , "s" ) ; var_dump ($newstr) ; // string(6) "stack."

Všimnite si, že na rozdiel od strstr, ak druhý argument pozostáva z viacerých znakov, použije sa iba prvý:

// test s viacznakovým druhým argumentom$newstr = strrchr ($str , "the" ) ; var_dump ($newstr) ; // string(5) "pripinanie."

Funkcia strrchr namiesto vrátenia "the haystack" vráti "tack" , pričom na vyhľadávanie použije iba prvé písmeno druhého argumentu.

Ahoj Habr!

Dnes by som rád predstavil nováčikom webmasterov množstvo úhľadných spôsobov použitia výstupnej vyrovnávacej pamäte v PHP. Skúsení webmasteri tu pravdepodobne nenájdu nič užitočné. Hoci – ktovie?

Ako všetci viete, ukladanie do vyrovnávacej pamäte v php je riadené súborom funkcií začínajúcich na „ob_“. Najdôležitejším z nich je ob_start. Po spustení zhromažďuje následný výstup, teda všetky druhy print(), echo atď., ktoré potom dostane návštevník vo forme html stránky. A ak sme pred výstupom začali ukladať do vyrovnávacej pamäte, potom môžeme konečne niečo urobiť s touto takmer pripravenou stránkou.


Chceme napríklad odfiltrovať všetky odkazy na externé stránky.

Naše fórum, staré ako sekera Australopithecus, sa hemží množstvom spamerov, ktorí lákajú návštevníkov na miesta plné zhýralosti, jednorukých banditov a politickej agitácie. Mohli by sme použiť js so sledovaním, ale namiesto toho chceme zmeniť všetky tieto odkazy takto:

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

Metóda nemusí byť najefektívnejšia, ale je účinná. Napísali sme redirect.php s filtrom a blacklistom a teraz potrebujeme previesť všetky odkazy na tisíckach stránok fóra. Pomocou ob_start a niekoľkých regulárnych výrazov to môžeme urobiť v niekoľkých riadkoch:

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

Teraz, keď tento kód zahrnieme na začiatok index.php alebo iného súboru, ku ktorému server pristupuje pri prezeraní stránok, dostaneme to, čo potrebujeme.

Takouto zmenou obsahu nie sme limitovaní metódami enginu. To môže byť veľmi cenné. Môžete napríklad pridať doplnok:

Function generation_plugin() ( /*vygenerovať niečo*/ ) function f_callback($buffer)( /*...*/ $buffer = str_replace ("",generate_plugin(),$buffer); /*...*/ return $buffer; ) ob_start("f_callback");

Teraz tam, kde sme pridali obsah, sa objaví to, čo sme chceli. Jednou z aplikácií je vloženie miniaplikácie js na webovú stránku. Napríklad mapy Yandex. Zvyčajne to nie je ťažké, ale niekedy zle napísaný editor webovej stránky unikne úvodzovkám a zloženým zátvorkám, čím sa miniaplikácia rozbije. Ako vidíte, tento problém je ľahko vyriešený.

Sada PHP nástrojov na prácu s výstupným bufferom je bohatá a neobmedzuje sa len na ob_start. Vyššie opísané metódy sú v niektorých prípadoch príliš náročné na zdroje a ťažkopádne, pretože fungujú na celej stránke. Môžeme spracovať iba časť tak, že v šablóne vytvoríme obal okolo generovania niečoho, do čoho sa nechceme dostať, ale určite to treba opraviť:

(GENEROVAŤ VEĽKÚ BLÁZNINU)

Určite ste si už všimli všetky tieto frázy: „Nechcem sa do toho pustiť“, „staré ako stolička tyranosaura“, „krivo napísaný redaktor“... V ideálnom svete sú škrupiny okolo výstupnej vyrovnávacej pamäte nepotrebné. Všetko, čo sa dá urobiť s ob_start, by sa teoreticky dalo urobiť aj bez neho. Táto technika niekedy vnáša zmätok do kódu projektu, mnohí vidia jej význam iba v odoslaní výstupu do ob_gzhandler na kompresiu a považujú jej použitie v iných prípadoch za nebezpečné. Často sa však bez výstupnej kontroly jednoducho nezaobídete.

Najmä ak nechcete kopať hlboko.

(PHP 4, PHP 5, PHP 7)

ob_start — Povoliť ukladanie do vyrovnávacej pamäte výstupu

Popis

Bool ob_start ([ volateľný$output_callback = NULOVÝ [, int $chunk_size = 0 [, int $flags = PHP_OUTPUT_HANDLER_STDFLAGS ]]])

Táto funkcia umožňuje ukladanie do vyrovnávacej pamäte výstupu. Ak je aktívne ukladanie do vyrovnávacej pamäte, výstup skriptu sa neodosiela (okrem hlavičiek), ale je uložený vo vnútornej vyrovnávacej pamäti.

Obsah tejto internej vyrovnávacej pamäte je možné skopírovať do reťazcovej premennej pomocou ob_get_contents(). Na výstup obsahu internej vyrovnávacej pamäte by ste mali použiť ob_end_flush(). Prípadne môžete použiť ob_end_clean() na zničenie obsahu vyrovnávacej pamäte.

Pozornosť

Niektoré webové servery (napríklad Apache) zmenia pracovný adresár skriptu pri volaní funkcie spätného volania. Môžete to získať späť pomocou chdir(dirname($_SERVER["SCRIPT_FILENAME"])) vo funkcii spätného volania.

Výstupné vyrovnávacie pamäte sú vložené do zásobníka, čo znamená, že sú povolené volania ob_start() po zavolaní ďalšieho aktívneho ob_start(). V tomto prípade je potrebné zavolať ob_end_flush() príslušný počet krát. Ak je aktívnych viacero funkcií spätného volania, výstup sa filtruje postupne pre každú z nich v poradí vnorenia.

Zoznam parametrov

Je možné zadať voliteľný parameter output_callback. Táto funkcia berie reťazec ako argument a musí tiež vrátiť reťazec. Volá sa pri resetovaní (odoslaní) alebo vyčistení (použitím ob_flush(), ob_clean() alebo podobné funkcie) alebo ak sa výstupná vyrovnávacia pamäť vyprázdni do prehliadača na konci požiadavky. Keď sa zavolá funkcia output_callback, prijme obsah vyrovnávacej pamäte a musí vrátiť aktualizovaný obsah, aby sa výstupná vyrovnávacia pamäť odoslala do prehliadača. Ak output_callback nie je platnou funkciou, vráti sa zdokumentovaná funkcia FALSE. Popis funkcie pre tento parameter:

Reťazec psovod (string $buffer [, int $phase ])

Buffer Obsah výstupnej vyrovnávacej pamäte. fáza Bitová maska ​​konštánt PHP_OUTPUT_HANDLER_*.

Ak output_callback vráti FALSE, potom sa pôvodné informácie odošlú do prehliadača bez zmien.

Parameter output_callback možno ignorovať odovzdaním hodnoty NULOVÝ.

ob_end_clean(), ob_end_flush(), ob_clean(), ob_flush() A ob_start() nemožno volať z funkcií spätného volania, pretože ich správanie je nepredvídateľné. Ak chcete vymazať obsah vyrovnávacej pamäte, vráťte "" (prázdny reťazec) z funkcie spätného volania. Tiež nemôžete volať funkcie print_r($výraz, pravda) alebo highlight_file($filename, true) z funkcií spätného volania ukladania do vyrovnávacej pamäte.

Komentujte:

V PHP 4.0.4 je funkcia ob_gzhandler() bol predstavený s cieľom uľahčiť odosielanie údajov kódovaných gz do webových prehliadačov, ktoré podporujú komprimované webové stránky. ob_gzhandler() určuje typ kódovania obsahu akceptovaný prehliadačom a podľa toho vráti výstup.

chunk_size

Ak je odovzdaný voliteľný parameter chunk_size, vyrovnávacia pamäť sa vyprázdni po každom výstupe, ktorý je väčší alebo rovný veľkosti chunk_size. Predvolená hodnota 0 znamená, že výstupná funkcia sa zavolá pri zatvorení vyrovnávacej pamäte.

Pred PHP 5.4.0, hodnota 1 bola špeciálna hodnota, ktorá nastavila parameter chunk_size na 4096.

Parameter flags je bitová maska, ktorá riadi operácie, ktoré možno vykonať na výstupnej vyrovnávacej pamäti. Štandardne umožňuje vyprázdnenie, vyprázdnenie a vymazanie výstupnej vyrovnávacej pamäte, čo je rovnaké ako | | , alebo PHP_OUTPUT_HANDLER_STDFLAGS ako skratka pre túto kombináciu.

Každý príznak riadi prístup k súboru funkcií, ako je popísané nižšie:

Neustále Funkcie
PHP_OUTPUT_HANDLER_CLEANABLE ob_clean(), ob_end_clean(), A ob_get_clean().
PHP_OUTPUT_HANDLER_FLUSHABLE ob_end_flush(), ob_flush(), A ob_get_flush().
PHP_OUTPUT_HANDLER_REMOVABLE ob_end_clean(), ob_end_flush(), A ob_get_flush().

Návratové hodnoty

Návraty PRAVDA po úspešnom absolvovaní resp FALSE v prípade chyby.

Zoznam zmien

Verzia Popis
7.0.0 Ak ob_start() použitá vo funkcii spätného volania výstupnej vyrovnávacej pamäte, táto funkcia už nebude generovať chybu E_ERROR, ale namiesto toho zavolá E_RECOVERABLE_ERROR, čo umožňuje obsluhu chýb tretích strán zachytiť.
5.4.0 Tretí parameter ob_start() zmenené z boolean ( boolovská hodnota) parametra vymazania (ktorý, keď je nastavený na FALSE zabránil vymazaniu vyrovnávacej pamäte, kým sa skript nedokončí) na celé číslo ( celé číslo) flags parameter. Bohužiaľ to znamená nekompatibilitu API pre kód, ktorý používal tretí parameter pred PHP 5.4.0. Pozrite si príklad s príznakmi, aby ste pochopili, ako pracovať s kódom tak, aby bol kompatibilný s oboma verziami.
5.4.0 Parameter chunk_size, nainštalovaný v 1 , teraz má za následok výstup 1 bajtu do výstupnej vyrovnávacej pamäte.
4.3.2 Funkcia sa vráti FALSE v prípade, že output_callback nemožno vykonať.

Príklady

Príklad #1 Príklad funkcie spätného volania definovanej používateľom

Spätné volanie funkcie ($buffer)
{
// nahraďte všetky jablká pomarančmi
návrat (str_replace("jablká", "pomaranče", $buffer));
}

Ob_start("spätné volanie");

?>


Je to ako porovnávať jablká a pomaranče.






ob_end_flush();