Ob_start - Aktivizo bufferimin e daljes. Përdorimi i ob_start kur mbështet projektet php Fillimi i dobët i kërkimit php

Filloni kërkiminështë një rrëmbyes i shfletuesit, i cili promovohet nëpërmjet shkarkimeve të tjera falas dhe pasi të instalohet do të ndryshojë faqen kryesore të shfletuesit tuaj në start-search.com search.yahoo.com.

Faqja kryesore e start-search.com do të shfaqë reklama dhe lidhje të sponsorizuara në rezultatet e kërkimit tuaj dhe mund të mbledhë termat e kërkimit nga pyetjet tuaja të kërkimit. Rrëmbimi i start-search.com përdoret për të rritur të ardhurat nga reklamat, si në përdorimin e blackhat SEO, për të rritur renditjen e faqeve të faqes në rezultatet e kërkimit.

Start Search, teknikisht nuk është një virus, por shfaq shumë tipare keqdashëse, të tilla si aftësitë e rootkit për t'u lidhur thellë në sistemin operativ, rrëmbimi i shfletuesit dhe në përgjithësi thjesht ndërhyrja në përvojën e përdoruesit. Industria në përgjithësi i referohet asaj si një "PUP", ose program potencialisht i padëshiruar.
Start Search është një shtojcë e mbështetur nga reklamat (përdoruesit mund të shohin reklama shtesë për baner, kërkim, pop-up, pop-under, intersticiale dhe në tekst) shtojcë ndërshfletuesish për Internet Explorer (BHO) dhe Firefox/Chrome (shtojcë shtesë) dhe shpërndahet përmes platformave të ndryshme të fitimit të parave gjatë instalimit. Shtesa e shfletuesit përfshin veçori të ndryshme që do të modifikojnë cilësimet e parazgjedhura ose të personalizuara të shfletuesit duke përfshirë faqen kryesore, cilësimet e kërkimit dhe në disa raste do të modifikojnë pragun kohor të ngarkimit të Internet Explorer, vendosin një skedar bllokimi brenda Firefox-it për të parandaluar softuerin konkurrues të ndryshojë cilësimet e tij si dhe çaktivizoni Politikën e Sigurisë së Përmbajtjes së shfletuesit në mënyrë që të lejojë skriptimin e ndërfaqes së shtojcës.

Faqja kryesore e Start Search u fut në kompjuterin tuaj pasi të keni instaluar një softuer falas (regjistrimi/transmetimi i videos, menaxherët e shkarkimit ose krijuesit e PDF-ve) që kishte bashkuar në instalimin e tyre këtë rrëmbyes të shfletuesit.
Për shembull, kur të instaloni VPlay, do të pranoni gjithashtu të ndryshoni faqen kryesore të shfletuesit tuaj në start-search.com dhe motori i parazgjedhur i kërkimit për të search.yahoo.com


Megjithatë, kur çinstaloni VPlay nga kompjuteri juaj, cilësimet e paracaktuara të shfletuesit tuaj të internetit nuk do të rikthehen. Kjo do të thotë që do t'ju duhet të hiqni manualisht faqen kryesore të start-search.com nga shfletuesi juaj i preferuar i internetit.

Ti duhet gjithmonë kushtojini vëmendje kur instaloni softuer sepse shpesh, një instalues ​​softuerësh përfshin instalime opsionale, siç është ky rrëmbyes i shfletuesit start-search.com. Jini shumë të kujdesshëm se çfarë pranoni të instaloni.
Gjithmonë zgjidhni instalimin me porosi dhe çaktivizoni çdo gjë që nuk është e njohur, veçanërisht softuerin opsional që nuk keni dashur kurrë ta shkarkoni dhe instaloni në radhë të parë. Është e vetëkuptueshme që nuk duhet të instaloni softuer që nuk i besoni.

Si të hiqni start-search.com (Udhëzues për heqjen e virusit)

Kjo faqe është një udhëzues gjithëpërfshirës, ​​i cili do të heqë start-search.com nga Internet Explorer, Firefox dhe Google Chrome.
Ju lutemi kryeni të gjitha hapat në rendin e duhur. Nëse keni ndonjë pyetje ose dyshim në çdo moment, STOP dhe kërkoni ndihmën tonë.




HAPI 1: Çinstaloni programet me qëllim të keq start-search.com nga kompjuteri juaj

Në këtë hap të parë, ne do të përpiqemi të identifikojmë dhe heqim çdo program me qëllim të keq që mund të instalohet në kompjuterin tuaj.

Nëse keni probleme gjatë përpjekjes për të çinstaluar programin start-search.com, mund ta përdorni për ta hequr plotësisht këtë program të padëshiruar nga kompjuteri juaj.

HAPI 2: Hiqni virusin start-search.com nga Internet Explorer, Firefox dhe Google Chrome

Hiq virusin start-search.com nga Internet Explorer

Mund të rivendosni cilësimet e Internet Explorer për t'i kthyer ato në gjendjen në të cilën ishin kur Internet Explorer u instalua për herë të parë në kompjuterin tuaj.

Hiq start-search.com virus nga Mozilla Firefox

Nëse keni probleme me Firefox-in, rivendosja e tij mund të ndihmojë. Rregullimi i rivendosjes përmban shumë probleme duke e rikthyer Firefox-in në gjendjen e tij të paracaktuar të fabrikës, ndërsa ruan informacionin tuaj thelbësor si faqeshënuesit, fjalëkalimet, informacionin e plotësimit automatik të formularit të internetit, historikun e shfletimit dhe skedat e hapura.

shënim: Profili juaj i vjetër i Firefox-it do të vendoset në desktopin tuaj në një dosje me emrin “ Të dhënat e vjetra të Firefox-it“. Nëse rivendosja nuk e zgjidhi problemin tuaj, mund të rivendosni disa nga informacionet që nuk janë ruajtur duke kopjuar skedarët në profilin e ri që është krijuar. Nëse nuk ju nevojitet më kjo dosje, duhet ta fshini pasi përmban informacione të ndjeshme.

Hiq start-search.com virus nga Google Chrome

HAPI 3: Hiqni rrëmbyesin e shfletuesit start-search.com me AdwCleaner

Programi AdwCleaner do të skanojë kompjuterin tuaj dhe shfletuesin e internetit për skedarët me qëllim të keq "start-search.com", shtesat e shfletuesit dhe çelësat e regjistrit, që mund të jenë instaluar në kompjuterin tuaj pa dijeninë tuaj.

HAPI 4: Hiqni virusin start-search.com nga kompjuteri juaj me Malwarebytes Anti-Malware Free

Malwarebytes Anti-Malware Free përdor teknologjinë lider në industri për të zbuluar dhe hequr të gjitha gjurmët e malware, duke përfshirë krimbat, Trojans, rootkits, mashtrues, dialers, spyware dhe më shumë.
Është e rëndësishme të theksohet se Malwarebytes Anti-Malware funksionon mirë dhe duhet të funksionojë së bashku me softuerin antivirus pa konflikte.

  1. Ju mund të shkarkoni shkarko Malwarebytes Anti-Malware nga lidhja e mëposhtme.
    (Kjo lidhje do të hapë një faqe të re ueb nga ku mund të shkarkoni Malwarebytes Anti-Malware Free)
  2. Pasi të keni shkarkuar, mbyllni të gjitha programet, pastaj klikoni dy herë në ikonën në desktopin tuaj me emrin " mbam-setup-consumer-2.00.xx” për të nisur instalimin e Malwarebytes Anti-Malware.

    Mund t'ju shfaqet një dialog "Kontrolli i llogarisë së përdoruesit" që ju pyet nëse dëshironi të ekzekutoni këtë skedar. Nëse kjo ndodh, duhet të klikoni " po” për të vazhduar me instalimin.
  3. Kur të fillojë instalimi, do të shihni e cila do t'ju udhëheqë në procesin e instalimit.


    Për të instaluar Malwarebytes Anti-Malware në kompjuterin tuaj, vazhdoni të ndiqni udhëzimet duke klikuar " Tjetra butonin ".

  4. Pasi të instalohet, Malwarebytes Anti-Malware do të fillojë automatikisht dhe do të shihni një mesazh që thotë se duhet të përditësoni programin dhe se një skanim nuk është ekzekutuar kurrë në sistemin tuaj. Për të filluar një skanim të sistemit, mund të klikoni në " Rregullo tani butonin ".


    Përndryshe, mund të klikoni në " Skanoni"tab dhe zgjidhni" Skanimi i kërcënimit“, më pas klikoni në "Skanoje tani" butonin.

  5. Malwarebytes Anti-Malware tani do të kontrollojë për përditësime dhe nëse ka, do t'ju duhet të klikoni në " Përditëso Tani butonin ".

  6. Malwarebytes Anti-Malware tani do të fillojë të skanojë kompjuterin tuaj për virusin start-search.com. Kur Malwarebytes Anti-Malware po skanon, do të duket si imazhi më poshtë.

  7. Kur skanimi të ketë përfunduar, tani do t'ju shfaqet një ekran që ju tregon infeksionet e malware që ka zbuluar Anti-Malware i Malwarebytes. Për të hequr programet me qëllim të keq që Malwarebytes Anti-malware ka gjetur, klikoni në " Të gjitha në karantinë butonin ", dhe më pas klikoni në " Apliko tani butonin ".


    Ju lutemi vini re se infeksionet e gjetura mund të jenë të ndryshme nga ajo që tregohet në imazh.
  8. Malwarebytes Anti-Malware tani do të karantinojë të gjithë skedarët me qëllim të keq dhe çelësat e regjistrit që ka gjetur. Kur hiqni skedarët, Malwarebytes Anti-Malware mund të kërkojë një rindezje për të hequr disa prej tyre. Nëse shfaq një mesazh që thotë se duhet të rindizet kompjuteri juaj, ju lutemi lejoni që ta bëjë këtë.


    Pasi kompjuteri juaj të rindizet, duhet të hapni Malwarebytes Anti-Malware dhe të kryeni një skanim tjetër "Threat Scan" për të verifikuar që nuk ka kërcënime të mbetura.

HAPI 5: Kontrolloni dy herë për infeksionin start-search.com me HitmanPro

HitmanPro është një skaner i dytë i opinionit, i krijuar për të shpëtuar kompjuterin tuaj nga malware (viruse, trojanë, rootkits, etj.) që kanë infektuar kompjuterin tuaj pavarësisht të gjitha masave të sigurisë që keni marrë (si softueri antivirus, muret e zjarrit, etj.). HitmanPro është krijuar për të punuar së bashku me programet ekzistuese të sigurisë pa asnjë konflikt. Skanon kompjuterin shpejt (më pak se 5 minuta) dhe nuk e ngadalëson kompjuterin.

Prezantimi

Sistemi Balsa, i bazuar në versionin Xubuntu 10.04 (lucid) të Linux, është i disponueshëm për përdorim si softuer beta. Kjo faqe ju tregon se çfarë ju nevojitet për të shkarkuar dhe ekzekutuar Balsa dhe më pas tregon udhëzimet se si ta bëni këtë.

Balsa përdor një kartë SD për të ekzekutuar në një kompjuter. Karta SD duhet të ketë një sistem Balsa përpara se të përdoret për të ekzekutuar Balsa.

Mund të prodhoni një kartë SD Balsa në një kompjuter dhe ta ekzekutoni në një kompjuter tjetër. Kompjuteri ku e prodhoni nuk ka pse të ekzekutojë vetë Balsa.

Çfarë ju nevojitet për të drejtuar Balsa

Për të drejtuar Balsa, do t'ju duhen sa vijon:

Për të prodhuar kartën SD Balsa, kompjuterit në të cilin e prodhoni do t'i nevojiten 5 ose 9 gigabajt hapësirë ​​gjatë ndërtimit të kartës.

Një shënim rreth lexuesve të kartave SD

Në disa laptopë të vjetër, lexuesi SD nuk mund të trajtojë një kartë SD 4 ose 8 gigabajt. Lexuesit e tjerë të kartave SD të përdorur nga disa kompjuterë Dell nuk funksionojnë me sistemin Balsa. Në secilin prej këtyre rasteve, Balsa mund të ekzekutohet në një lexues të veçantë të kartave USB SD.

Kartat SD Balsa vijnë në versione 4 ose 8 gigabajt. Secili version mund të bëhet në një makinë Windows ose Linux. Si Windows ashtu edhe Linux përdorin të njëjtin skedar të shkarkuar për kartën dhe karta e ndërtuar do të jetë identike me njërën në sistemin tjetër. Zgjidhni një nga këto.

PHP ofron disa funksione që kërkojnë një varg brenda një tjetri. Disa kthejnë vendndodhjen e vargut të gjetur (strpos , strrpos dhe të ngjashme), dhe kthejnë një pjesë të vargut origjinal (strstr dhe strrchr). Funksionet e kërkimit kthehen false nëse vargu që po kërkoni nuk gjendet brenda origjinalit.

Nëse qëllimi juaj është thjesht të përcaktoni nëse një varg ekziston brenda një tjetri, opsioni më efikas është strpos.

strpos

Funksioni strpos kërkon argumentin e tij të parë të vargut për të dytën dhe kthen vendndodhjen e indeksit të bazuar në zero të ndeshjes së parë brenda vargut, ose false nëse nuk gjendet. Shembulli i mëposhtëm tregon:

$str = ; // kërkoni për shfaqjen e parë të "nevoja" brenda $str$pos = strpos($str, "duhet"); // llojin e shfaqjes dhe vlerën e $pos var_dump ($pos); // int (3)

Edhe pse ne demonstruam rezultatin duke përdorur var_dump më lart, një ekzaminim tipik i vlerës së kthimit për strpos kryhet si më poshtë:

// si të inspektoni vlerën e kthimit të strpos ($pos) if ( $pos !== false ) ( // nëse vargu i kërkimit gjendet echo "e gjeti në vendndodhjen $pos" ; ) tjetër (echo "nuk u gjet." ; )

Sigurohuni që të përdorni operatorët === ose !== për të krahasuar vlerën e kthimit të funksionit strpos në false. Nëse nënvargu gjendet në fillim të vargut, strpos do të kthejë 0, të cilin operatorët == ose != do të konvertohej në false.

Ju mund të specifikoni një zhvendosje për të filluar kërkimin një numër të caktuar karakteresh nga fillimi i vargut, siç tregon ky shembull:

/* argumentet strpos: * vargu i subjektit (aka haystack), vargu i kërkimit (gjilpëra), kompensimi (opsionale) */ // filloni kërkimin për "nevoja" nga karakteri 10 në $str$pos = strpos ($str, "nevoja", 10); // 20

Kur filloni kërkimin nga karakteri 10, rezultati është 20, vendndodhja e indeksit të fillimit të fjalës gjilpërë.

strrpos

Funksioni strrpos gjen pozicionin e shfaqjes së fundit të një nënvargu në një varg:

// varg shembull për t'u përdorur për kërkime$str = "Ne duhet të gjejmë gjilpërën në kashtë."; // gjeni vendndodhjen e shfaqjes së fundit të "nevojës" në $str$pos = strrpos ($str, "duhet"); // 20

Funksioni strrpos ofron gjithashtu një parametër të kompensimit opsional i cili mund të jetë pozitiv ose negativ. Nëse zhvendosja është pozitive, ai numër karakteresh në fillim të vargut do të përjashtohet nga kërkimi. Merrni parasysh shembullin e mëposhtëm:

// kërkoni nga e djathta për "Ne" duke përjashtuar 3 karakteret e para$pos = strrpos ($str , "Ne" , 3 ); var_dump ($pos); //bool(false)

Rezultati është i rremë pasi "Ne" nuk gjendet kur kërkimi përjashton tre personazhet e parë.

Nëse kompensimi është negativ, atëherë shumë karaktere në fund të vargut përjashtohen nga kërkimi. Ne demonstrojmë me dy kërkime që specifikojnë një kompensim negativ:

// kërkoni nga e djathta për "hay" duke përjashtuar 5 karakteret e fundit$pos = strrpos ($str , "hay" , - 5 ); // int(34) // kërko nga e djathta duke përjashtuar 10 karakteret e fundit$pos = strrpos ($str , "hay" , - 10 ); //bool(false)

Rezultati i fundit i mësipërm është i rremë pasi "hay" nuk gjendet kur kërkimi përjashton 10 karakteret e fundit.

Vini re se vlera e kthyer e funksionit strrpos jep vendndodhjen që nga fillimi i vargut, edhe pse kërkimi fillon nga e djathta.

stripos dhe stripos

Funksionet strpos dhe strrpos kryejnë kërkime të ndjeshme ndaj rasteve. PHP ofron funksione stripos dhe strripos për të kryer kërkime të pandjeshme ndaj rasteve. Ata funksionojnë ashtu si ekuivalentët e tyre të ndjeshëm ndaj rastit:

// varg shembull për t'u përdorur për kërkime$str = "Ne duhet të gjejmë gjilpërën në kashtë."; // bëni kërkim të pandjeshëm për "ne"$pos = stripos($str, "ne"); // int(0) // bëni kërkim të pandjeshëm ndaj rasteve nga e djathta për "Nevojë"$pos = strripos($str, "Nevojë"); // int (20)

Kërkimi i pandjeshëm për "ne" rezulton në 0, duke treguar se është gjetur në fillim të vargut në të cilin po kërkojmë. Kërkimi i pandjeshëm për "Need" nga e djathta (duke përdorur strripos), e gjen në vendndodhjen 20 .

strstr

Funksioni strstr kërkon argumentin e vargut të parë për të dytin. Nëse e dyta gjendet brenda së parës, strstr kthen pjesën e vargut origjinal duke filluar nga shfaqja e parë e gjetur deri në fund të vargut.

// varg shembulli $str = "Ne duhet të gjejmë gjilpërën në kashtë."; // kërko për "the" në $str $newstr = strstr ($str , "the" ); var_dump ($newstr) ; // string(27) "gjilpëra në kashtë."

Funksioni strstr kthen "the"-në e parë që gjen, së bashku me pjesën tjetër të vargut origjinal.

Nëse kaloni true si argumentin e tretë te strstr, pjesa e vargut origjinal përpara vargu i gjetur kthehet:

// kaloj true për të kthyer pjesën e $str para "the"$newstr = strstr ($str, "the", e vërtetë); var_dump ($newstr) ; // string (16) "Ne duhet të gjejmë"

Këtë herë funksioni strstr kthen gjithçka përpara "the"-së së parë në varg.

PHP gjithashtu ofron funksionin stristr i cili funksionon saktësisht njësoj si strstr përveç që kryen një kërkim të pandjeshëm ndaj shkronjave të vogla.

strhrchr

Funksioni strrchr kërkon argumentin e vargut të parë nga e djathta për karakterin që specifikojmë në argumentin e dytë. Funksioni kthen pjesën e vargut nga vendndodhja e shembullit të gjetur të atij karakteri në fund të vargut:

// varg shembulli $str = "Ne duhet të gjejmë gjilpërën në kashtë."; // kërko nga e djathta për "s" në $str$newstr = strstr ($str, "s"); var_dump ($newstr) ; // string(6) "stack."

Vini re se ndryshe nga strstr, nëse argumenti i dytë përbëhet nga shumë karaktere, përdoret vetëm i pari:

// test me argumentin e dytë me shumë karaktere$newstr = strrchr ($str, "the"); var_dump ($newstr) ; // string(5) "tack."

Në vend që të kthejë "the haystack", funksioni strrchr kthen "tack" , duke aplikuar vetëm shkronjën e parë të argumentit të dytë në kërkim.

Përshëndetje, Habr!

Sot do të doja të prezantoj webmasterët e rinj me një sërë mënyrash të rregullta për të përdorur bufferimin e daljes në PHP. Webmasterët me përvojë nuk ka gjasa të gjejnë ndonjë gjë të dobishme këtu. Edhe pse - kush e di?

Siç e dini të gjithë, bufferimi i daljes në php kontrollohet nga një grup funksionesh që fillojnë me "ob_". Më e rëndësishmja prej tyre është ob_start. Kur lëshohet, ai mbledh rezultatet e mëvonshme, domethënë të gjitha llojet e printimit (), echos, etj., të cilat më pas i jepen vizitorit në formën e një faqe html. Dhe nëse filluam të fshijmë para se të nxjerrim daljen, atëherë më në fund mund të bëjmë diçka me këtë faqe pothuajse gati.


Për shembull, ne duam të filtrojmë të gjitha lidhjet në faqet e jashtme.

Forumi ynë, i vjetër sa sëpata e Australopitekut, është i mbushur me shumë spammers, duke joshur vizitorët në vende të mbushura me shthurje, banditë me një armë dhe agjitacion politik. Ne mund të përdorim js me gjurmim, por ne duam t'i ndryshojmë të gjitha këto lidhje si kjo:

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

Metoda mund të mos jetë më efektive, por është efektive. Ne kemi shkruar redirect.php me një filtër dhe një listë të zezë, dhe tani duhet të konvertojmë të gjitha lidhjet në mijëra faqe forumi. Duke përdorur ob_start dhe disa shprehje të rregullta, ne mund ta bëjmë këtë në vetëm disa rreshta:

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

Tani, duke përfshirë këtë kod në fillim të index.php, ose një skedar tjetër që serveri i qaset kur shikon faqet, ne do të marrim atë që na nevojitet.

Duke ndryshuar përmbajtjen në këtë mënyrë, ne nuk jemi të kufizuar nga metodat e motorit. Kjo mund të jetë shumë e vlefshme. Për shembull, mund të shtoni një shtojcë:

Funksioni generate_plugin() ( /*gjeneroj diçka*/ ) funksionin f_callback($buffer)( /*...*/ $buffer = str_replace ("",generate_plugin(),$buffer); /*...*/ return $buffer; ) ob_start("f_callback");

Tani, ku kemi shtuar në përmbajtje, do të shfaqet ajo që kemi dashur. Një nga aplikacionet është futja e një widget js në një faqe interneti. Për shembull, hartat Yandex. Zakonisht kjo nuk është e vështirë, por ndonjëherë një redaktues i faqes së internetit të shkruar keq u shpëton thonjve dhe kllapave kaçurrelë, duke thyer miniaplikacionin. Siç mund ta shihni, ky problem zgjidhet lehtësisht.

Grupi i mjeteve PHP për të punuar me bufferin e daljes është i pasur dhe nuk kufizohet vetëm në ob_start. Metodat e përshkruara më sipër janë në disa raste tepër intensive me burime dhe të rënda, pasi ato funksionojnë në të gjithë faqen. Ne mund të përpunojmë vetëm një pjesë të tij duke krijuar një mbështjellës në shabllon rreth gjenerimit të diçkaje në të cilën nuk duam të futemi, por që patjetër duhet të rregullohet:

(GJENERON GJËNË TË MADHE TË Çmendur)

Duhet t'i keni vënë re tashmë të gjitha këto fraza: "Unë nuk dua të futem në të", "i lashtë sa një karrige tiranosaurus", "një redaktues i shkruar shtrembër"... Në një botë ideale, predha rreth tamponit të daljes janë nuk nevojitet. Gjithçka që mund të bëhet me ob_start teorikisht mund të bëhet pa të. Kjo teknikë nganjëherë sjell konfuzion në kodin e projektit; shumë e shohin kuptimin e saj vetëm në dërgimin e prodhimit në ob_gzhandler për komprimim dhe e konsiderojnë përdorimin e tij në raste të tjera të rrezikshme. Por shpesh ju thjesht nuk mund të bëni pa kontrollin e daljes.

Sidomos nëse nuk doni të gërmoni thellë.

(PHP 4, PHP 5, PHP 7)

ob_start - Aktivizo bufferimin e daljes

Përshkrim

Bool ob_start ([ i thirrshëm$output_callback = I PAVLEFSHËM [, int $chunk_size = 0 [, int $flamuj = PHP_OUTPUT_HANDLER_STDFLAGS ]]])

Ky funksion mundëson buferimin e daljes. Nëse bufferimi i daljes është aktiv, dalja e skriptit nuk dërgohet (përveç kokave), por ruhet në një bufer të brendshëm.

Përmbajtja e këtij buferi të brendshëm mund të kopjohet në një variabël vargu duke përdorur ob_get_contents(). Për të nxjerrë përmbajtjen e buferit të brendshëm duhet të përdorni ob_end_flush(). Përndryshe mund të përdorni ob_end_clean() për të shkatërruar përmbajtjen e tamponit.

Kujdes

Disa serverë ueb (për shembull Apache) ndryshojnë drejtorinë e punës të skriptit kur thirret funksioni i kthimit të thirrjes. Mund ta ktheni duke përdorur chdir(dirname($_SERVER["SCRIPT_FILENAME"])) në funksionin e kthimit të thirrjes.

Buferët e daljes shtyhen në pirg, që do të thotë se thirrjet lejohen ob_start () pasi telefonon një tjetër aktiv ob_start (). Në këtë rast është e nevojshme të telefononi ob_end_flush() numrin e duhur të herëve. Nëse funksionet e shumëfishta të kthimit të thirrjes janë aktive, dalja filtrohet në mënyrë sekuenciale për secilën prej tyre në rendin e folesë.

Lista e parametrave

Mund të specifikohet një parametër opsional output_callback. Ky funksion merr një varg si argument dhe gjithashtu duhet të kthejë një varg. Ajo quhet kur një rivendosje (dërgoni) ose pastrim (duke përdorur ob_flush(), ob_clean () ose funksione të ngjashme) ose nëse buferi i daljes derdhet në shfletues në fund të kërkesës. Kur thirret funksioni output_callback, ai merr përmbajtjen e buferit dhe duhet të kthejë përmbajtjen e përditësuar që buferi i daljes të dërgohet në shfletues. Nëse output_callback nuk është një funksion i vlefshëm, atëherë funksioni i dokumentuar do të kthehet I RREMË. Përshkrimi i funksionit për këtë parametër:

Vargu mbajtës (vargu $buffer [, int $fazë ])

Tampon Përmbajtja e tamponit të daljes. faza Maska bit e konstanteve PHP_OUTPUT_HANDLER_*.

Nëse kthehet output_callback I RREMË, atëherë informacioni origjinal do të dërgohet në shfletues pa ndryshime.

Parametri output_callback mund të injorohet duke kaluar vlerën I PAVLEFSHËM.

ob_end_clean(), ob_end_flush(), ob_clean (), ob_flush() Dhe ob_start () nuk mund të thirret nga funksionet e kthimit të thirrjes, pasi sjellja e tyre është e paparashikueshme. Nëse dëshironi të fshini përmbajtjen e buferit, atëherë kthejeni "" (një varg bosh) nga funksioni i kthimit të thirrjes. Gjithashtu nuk mund të telefononi funksione print_r ($shprehje, e vërtetë) ose highlight_file ($filename, e vërtetë) nga funksionet e kthimit të thirrjes për bufferimin e daljes.

Komentoni:

Në PHP 4.0.4 funksioni ob_gzhandler() u prezantua për ta bërë më të lehtë dërgimin e të dhënave të koduara me gz te shfletuesit e internetit që mbështesin faqet e ngjeshura të internetit. ob_gzhandler() përcakton llojin e kodimit të përmbajtjes të pranuar nga shfletuesi dhe kthen rezultatin në përputhje me rrethanat.

madhësi_copë

Nëse kalohet parametri opsional chunk_size, buferi do të lahet pas çdo prodhimi më të madh ose të barabartë me madhësinë chunk_size. Vlera e paracaktuar 0 do të thotë që funksioni i daljes do të thirret kur buferi mbyllet.

Para PHP 5.4.0, vlera 1 ishte një vlerë e veçantë që përcaktonte parametrin madhësi_copë në 4096.

Parametri i flamujve është një bitmask që kontrollon operacionet që mund të kryhen në buferin e daljes. Si parazgjedhje, ai lejon që buferi i daljes të fshihet, të skuqet dhe të fshihet, i cili është i njëjtë me | | , ose PHP_OUTPUT_HANDLER_STDFLAGS si shkurtesë për këtë kombinim.

Çdo flamur kontrollon aksesin në një grup funksionesh, siç përshkruhet më poshtë:

Konstante Funksione
PHP_OUTPUT_HANDLER_CLEANABLE ob_clean (), ob_end_clean(), Dhe ob_get_clean().
PHP_OUTPUT_HANDLER_FLUSHABLE ob_end_flush(), ob_flush(), Dhe ob_get_flush().
PHP_OUTPUT_HANDLER_REMOVABLE ob_end_clean(), ob_end_flush(), Dhe ob_get_flush().

Vlerat e kthimit

Kthimet E VËRTETË pas përfundimit me sukses ose I RREMË në rast të një gabimi.

Lista e ndryshimeve

Version Përshkrim
7.0.0 Nëse ob_start () i përdorur brenda funksionit të kthimit të thirrjes së tamponit të daljes, ky funksion nuk do të gjenerojë më një gabim E_GABIM, por në vend të kësaj do të telefonojë E_RIKOHUESHMË_GABIM, duke lejuar trajtuesit e gabimeve të palëve të treta ta kapin atë.
5.4.0 Parametri i tretë ob_start () ndryshoi nga boolean ( logjike) të parametrit të fshirjes (i cili, kur vendoset në I RREMË parandaloi fshirjen e buferit derisa të përfundojë skripti) në një numër të plotë ( numër i plotë) parametri flamuj. Fatkeqësisht, kjo do të thotë papajtueshmëri e API-së për kodin që përdori parametrin e tretë përpara PHP 5.4.0. Shihni shembullin e flamujve për të kuptuar se si të punoni me kodin në mënyrë që ai të jetë i pajtueshëm me të dy versionet.
5.4.0 Parametri madhësi_copë, i instaluar në 1 , tani rezulton në daljen e 1 bajt në buferin e daljes.
4.3.2 Funksioni do të kthehet I RREMË në rast se output_callback nuk mund të ekzekutohet.

Shembuj

Shembulli #1 Shembull i një funksioni të kthimit të thirrjes të përcaktuar nga përdoruesi

Mbështetja e thirrjes së funksionit ($buffer)
{
// zëvendësoni të gjitha mollët me portokall
return (str_replace ("mollë", "portokall", $buffer));
}

Ob_start ("kthimi i thirrjes");

?>


Është si të krahasosh mollët dhe portokallet.






ob_end_flush();