Output Buffering

Från Wiki.linux.se
Version från den 11 oktober 2024 kl. 11.51 av Admin (diskussion | bidrag) (Skapade sidan med '== Output Buffering == Output buffering är buffring (tillfällig lagring) av utdata innan den spolas (skickas och tas bort) till webbläsaren (i en webbkontext) eller till skalet (på kommandoraden). När output buffering är aktiv skickas ingen utdata från skriptet, istället lagras utdatan i en intern buffert. === Buffring som påverkar PHP === PHP förlitar sig på den underliggande mjukvaru-/hårdvaruinfrastrukturen när utdata spolas. Buffring implementerad av...')
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök

Output Buffering

Output buffering är buffring (tillfällig lagring) av utdata innan den spolas (skickas och tas bort) till webbläsaren (i en webbkontext) eller till skalet (på kommandoraden). När output buffering är aktiv skickas ingen utdata från skriptet, istället lagras utdatan i en intern buffert.

Buffring som påverkar PHP

PHP förlitar sig på den underliggande mjukvaru-/hårdvaruinfrastrukturen när utdata spolas. Buffring implementerad av konsoler på kommandoraden (t.ex. radbuffring) eller webbservrar och webbläsare i en webbkontext (t.ex. fullständig buffring) påverkar när utdata visas för slutanvändaren. Vissa av dessa effekter kan elimineras genom att finjustera serverinställningar och/eller anpassa buffertstorlekarna i de olika lagren.

Kontroll av Output Buffering i PHP

PHP tillhandahåller en fullständigt buffrad utdata-buffert på användarnivå med funktioner för att starta, manipulera och stänga av bufferten (de flesta ob_* funktioner), samt två funktioner för att spola de underliggande systembuffrarna (flush() och ob_implicit_flush()). En del av denna funktionalitet kan också ställas in och/eller konfigureras med hjälp av lämpliga php.ini-inställningar.

Användningsfall

Output buffering är generellt användbart i situationer när den buffrade utdatan modifieras eller inspekteras, eller används mer än en gång i en förfrågan; eller när kontrollerad spolning av utdata önskas. Specifika användningsfall inkluderar:

  • cachning av resultatet från beräknings-/tidskrävande skript, till exempel genom att generera statiska HTML-sidor
  • återanvända den genererade utdatan genom att visa den, spara den till en fil och/eller skicka den via e-post
  • spola huvudet av en HTML-sida separat från kroppen för att tillåta webbläsare att ladda externa resurser medan skriptet utför potentiellt mer tidskrävande processer (t.ex. databas-/filåtkomst, extern nätverksanslutning). Detta är endast användbart om HTTP-statuskoden inte kan ändras efter att headers har skickats
  • extrahera information från funktioner som annars skulle producera utdata (t.ex. phpinfo())
  • kontrollera utdatan från tredjepartskod genom att modifiera/använda delar (t.ex. extrahera data, ersätta ord/frases, lägga till saknade HTML-taggar), eller helt ignorera den under vissa förhållanden (t.ex. fel)
  • implementera vissa otillgängliga webbserverfunktioner (t.ex. komprimera eller koda utdata)