Ob_start – Ausgabepufferung aktivieren. Verwendung von ob_start bei der Unterstützung von PHP-Projekten. Schlechter PHP-Suchstart

Suche starten ist ein Browser-Hijacker, der über andere kostenlose Downloads beworben wird und nach der Installation die Startseite Ihres Browsers ändert start-search.com search.yahoo.com.

Die Startseite von start-search.com zeigt Werbung und gesponserte Links in Ihren Suchergebnissen an und sammelt möglicherweise Suchbegriffe aus Ihren Suchanfragen. Der Start-search.com-Hijack wird verwendet, um die Werbeeinnahmen zu steigern, beispielsweise durch den Einsatz von Black-Hat-SEO, um das Seitenranking einer Website in den Suchergebnissen zu verbessern.

Start Search ist technisch gesehen kein Virus, weist jedoch zahlreiche bösartige Eigenschaften auf, z. B. Rootkit-Fähigkeiten, die sich tief in das Betriebssystem einschleichen, Browser-Hijacking und im Allgemeinen lediglich eine Beeinträchtigung der Benutzererfahrung. Die Branche bezeichnet es im Allgemeinen als „PUP“ oder potenziell unerwünschtes Programm.
Start Search ist ein werbefinanziertes (Benutzer sehen möglicherweise zusätzliche Banner-, Such-, Pop-up-, Pop-under-, Interstitial- und In-Text-Link-Werbung) Cross-Webbrowser-Plugin für Internet Explorer (BHO) und Firefox/Chrome (Plugin) und während der Installation über verschiedene Monetarisierungsplattformen verteilt. Die Browser-Erweiterung umfasst verschiedene Funktionen, die die Standard- oder benutzerdefinierten Einstellungen des Browsers ändern, einschließlich der Startseite und der Sucheinstellungen, und in einigen Fällen den Ladezeitschwellenwert von Internet Explorer ändern. Außerdem wird eine Sperrdatei in Firefox platziert, um zu verhindern, dass Konkurrenzsoftware ihre Einstellungen ändert Deaktivieren Sie außerdem die Inhaltssicherheitsrichtlinie des Browsers, um Cross-Site-Scripting des Plugins zu ermöglichen.

Die Start Search-Homepage gelangte auf Ihren Computer, nachdem Sie eine Freeware-Software (Videoaufzeichnung/-streaming, Download-Manager oder PDF-Ersteller) installiert hatten, die diesen Browser-Hijacker in ihrer Installation gebündelt hatte.
Wenn Sie beispielsweise VPlay installieren, stimmen Sie auch der Änderung der Startseite Ihres Browsers zu start-search.com und Standardsuchmaschine zu search.yahoo.com


Wenn Sie VPlay jedoch von Ihrem Computer deinstallieren, werden die Standardeinstellungen Ihres Webbrowsers nicht wiederhergestellt. Das bedeutet, dass Sie die Startseite von start-search.com manuell aus Ihrem bevorzugten Webbrowser entfernen müssen.

Du solltest Seien Sie bei der Installation von Software immer aufmerksam Denn oft beinhaltet ein Software-Installationsprogramm optionale Installationen, wie zum Beispiel diesen Browser-Hijacker start-search.com. Seien Sie sehr vorsichtig, was Sie installieren möchten.
Entscheiden Sie sich immer für die benutzerdefinierte Installation und deaktivieren Sie alles, was Ihnen nicht bekannt ist, insbesondere optionale Software, die Sie gar nicht erst herunterladen und installieren wollten. Es versteht sich von selbst, dass Sie keine Software installieren sollten, der Sie nicht vertrauen.

So entfernen Sie start-search.com (Anleitung zum Entfernen von Viren)

Diese Seite ist eine umfassende Anleitung, die start-search.com aus Ihrem Internet Explorer, Firefox und Google Chrome entfernt.
Bitte führen Sie alle Schritte in der richtigen Reihenfolge aus. Wenn Sie zu irgendeinem Zeitpunkt Fragen oder Zweifel haben, STOPPEN und bitten Sie um unsere Hilfe.




SCHRITT 1: Deinstallieren Sie die Schadprogramme von start-search.com von Ihrem Computer

In diesem ersten Schritt versuchen wir, eventuell auf Ihrem Computer installierte Schadprogramme zu identifizieren und zu entfernen.

Wenn beim Versuch, das Programm start-search.com zu deinstallieren, Probleme auftreten, können Sie dieses unerwünschte Programm mithilfe von vollständig von Ihrem Computer entfernen.

SCHRITT 2: Entfernen Sie den start-search.com-Virus aus Internet Explorer, Firefox und Google Chrome

Entfernen Sie den start-search.com-Virus aus dem Internet Explorer

Sie können die Internet Explorer-Einstellungen zurücksetzen, um sie auf den Zustand zurückzusetzen, in dem sie sich befanden, als Internet Explorer zum ersten Mal auf Ihrem PC installiert wurde.

Entfernen Sie den start-search.com-Virus aus Mozilla Firefox

Wenn Sie Probleme mit Firefox haben, kann ein Zurücksetzen hilfreich sein. Der Reset-Fix behebt viele Probleme, indem er Firefox auf den werkseitigen Standardzustand zurücksetzt und gleichzeitig Ihre wichtigen Informationen wie Lesezeichen, Passwörter, Informationen zum automatischen Ausfüllen von Webformularen, Browserverlauf und geöffnete Tabs speichert.

Notiz: Ihr altes Firefox-Profil wird auf Ihrem Desktop in einem Ordner namens „ Alte Firefox-Daten„. Wenn das Problem durch das Zurücksetzen nicht behoben wurde, können Sie einige der nicht gespeicherten Informationen wiederherstellen, indem Sie Dateien in das neu erstellte Profil kopieren. Wenn Sie diesen Ordner nicht mehr benötigen, sollten Sie ihn löschen, da er vertrauliche Informationen enthält.

Entfernen Sie den start-search.com-Virus aus Google Chrome

SCHRITT 3: Entfernen Sie den Browser-Hijacker start-search.com mit AdwCleaner

Das AdwCleaner-Dienstprogramm durchsucht Ihren Computer und Webbrowser nach schädlichen „start-search.com“-Dateien, Browsererweiterungen und Registrierungsschlüsseln, die möglicherweise ohne Ihr Wissen auf Ihrem Computer installiert wurden.

SCHRITT 4: Entfernen Sie den start-search.com-Virus mit Malwarebytes Anti-Malware Free von Ihrem Computer

Malwarebytes Anti-Malware Free nutzt branchenführende Technologie, um alle Spuren von Malware zu erkennen und zu entfernen, einschließlich Würmern, Trojanern, Rootkits, Schurken, Dialern, Spyware und mehr.
Es ist wichtig zu beachten, dass Malwarebytes Anti-Malware gut funktioniert und ohne Konflikte zusammen mit Antivirensoftware laufen sollte.

  1. Sie können herunterladen Laden Sie Malwarebytes Anti-Malware herunterüber den untenstehenden Link.
    (Dieser Link öffnet eine neue Webseite, von der Sie Malwarebytes Anti-Malware Free herunterladen können.)
  2. Schließen Sie nach dem Herunterladen alle Programme und doppelklicken Sie dann auf dem Desktop auf das Symbol „ mbam-setup-consumer-2.00.xx“ um die Installation von Malwarebytes Anti-Malware zu starten.

    Möglicherweise wird Ihnen ein Dialogfeld zur Benutzerkontensteuerung angezeigt, in dem Sie gefragt werden, ob Sie diese Datei ausführen möchten. In diesem Fall sollten Sie auf „ Ja”, um mit der Installation fortzufahren.
  3. Wenn die Installation beginnt, wird Folgendes angezeigt: das Sie durch den Installationsprozess führt.


    Um Malwarebytes Anti-Malware auf Ihrem Computer zu installieren, Folgen Sie weiterhin den Anweisungen durch Klicken auf „ Nächste" Taste.

  4. Nach der Installation startet Malwarebytes Anti-Malware automatisch und Sie sehen eine Meldung, dass Sie das Programm aktualisieren sollten und dass auf Ihrem System noch nie ein Scan durchgeführt wurde. Um einen Systemscan zu starten, können Sie auf „ Jetzt reparieren" Taste.


    Alternativ können Sie auch auf „ Scan„Tab und auswählen“ Bedrohungsscan“, dann klicken Sie auf "Scanne jetzt" Taste.

  5. Malwarebytes Anti-Malware sucht nun nach Updates. Wenn es welche gibt, müssen Sie auf „ Jetzt aktualisieren" Taste.

  6. Malwarebytes Anti-Malware beginnt nun mit dem Scannen Ihres Computers nach dem start-search.com-Virus. Wenn Malwarebytes Anti-Malware scannt, sieht es wie im Bild unten aus.

  7. Wenn der Scan abgeschlossen ist, wird Ihnen nun ein Bildschirm mit den Malware-Infektionen angezeigt, die Malwarebytes Anti-Malware erkannt hat. Um die Schadprogramme zu entfernen, die Malwarebytes Anti-Malware gefunden hat, klicken Sie auf „ Alle unter Quarantäne stellen Klicken Sie dann auf die Schaltfläche „ Jetzt bewerben" Taste.


    Bitte beachten Sie, dass die gefundenen Infektionen möglicherweise von den im Bild dargestellten abweichen.
  8. Malwarebytes Anti-Malware stellt nun alle gefundenen schädlichen Dateien und Registrierungsschlüssel unter Quarantäne. Beim Entfernen der Dateien erfordert Malwarebytes Anti-Malware möglicherweise einen Neustart, um einige davon zu entfernen. Wenn eine Meldung angezeigt wird, dass Ihr Computer neu gestartet werden muss, lassen Sie dies bitte zu.


    Nachdem Ihr Computer neu gestartet wurde, sollten Sie Malwarebytes Anti-Malware öffnen und einen weiteren „Threat Scan“-Scan durchführen, um sicherzustellen, dass keine verbleibenden Bedrohungen vorhanden sind

SCHRITT 5: Überprüfen Sie mit HitmanPro noch einmal, ob eine start-search.com-Infektion vorliegt

HitmanPro ist ein Zweitmeinungsscanner, der Ihren Computer vor Malware (Viren, Trojanern, Rootkits usw.) schützen soll, die Ihren Computer trotz aller von Ihnen ergriffenen Sicherheitsmaßnahmen (z. B. Antivirensoftware, Firewalls usw.) infiziert hat. HitmanPro ist so konzipiert, dass es ohne Konflikte mit vorhandenen Sicherheitsprogrammen zusammenarbeitet. Es scannt den Computer schnell (weniger als 5 Minuten) und verlangsamt ihn nicht.

Einführung

Das Balsa-System, basierend auf der Linux-Version Xubuntu 10.04 (Lucid), steht als Beta-Software zur Verwendung zur Verfügung. Auf dieser Seite erfahren Sie, was Sie zum Herunterladen und Ausführen von Balsa benötigen, und enthält dann Anweisungen dazu.

Balsa verwendet eine SD-Karte, um auf einem Computer ausgeführt zu werden. Auf der SD-Karte muss ein Balsa-System installiert sein, bevor sie zum Ausführen von Balsa verwendet werden kann.

Sie können eine Balsa-SD-Karte auf einem Computer erstellen und auf einem anderen Computer ausführen. Auf dem Computer, auf dem Sie es erstellen, muss Balsa nicht selbst ausgeführt werden.

Was Sie brauchen, um Balsa zu betreiben

Um Balsa auszuführen, benötigen Sie Folgendes:

Um die Balsa-SD-Karte herzustellen, benötigt der Computer, auf dem Sie sie erstellen, 5 oder 9 Gigabyte Speicherplatz, während die Karte erstellt wird.

Ein Hinweis zu SD-Kartenlesern

Bei einigen älteren Laptops kann der SD-Leser keine 4- oder 8-Gigabyte-SD-Karte verarbeiten. Andere von einigen Dell-Computern verwendete SD-Kartenleser funktionieren nicht mit dem Balsa-System. In beiden Fällen kann Balsa auf einem separaten USB-SD-Kartenleser ausgeführt werden.

Balsa SD-Karten gibt es entweder in 4- oder 8-Gigabyte-Versionen. Beide Versionen können entweder auf einem Windows- oder Linux-Computer erstellt werden. Sowohl Windows als auch Linux verwenden dieselbe heruntergeladene Datei für die Karte, und die erstellte Karte ist mit der auf dem anderen System identisch. Wählen Sie eines davon.

PHP bietet mehrere Funktionen, die nach einer Zeichenfolge innerhalb einer anderen suchen. Einige geben den Speicherort der gefundenen Zeichenfolge zurück (strpos, strrpos und related) und einen Teil der ursprünglichen Zeichenfolge (strstr und strrchr). Die Suchfunktionen geben „false“ zurück, wenn die gesuchte Zeichenfolge nicht im Original gefunden wird.

Wenn Ihr Ziel lediglich darin besteht, festzustellen, ob eine Zeichenfolge in einer anderen vorhanden ist, ist strpos die effizienteste Option.

strpos

Die strpos-Funktion durchsucht ihr erstes String-Argument nach ihrem zweiten und gibt die nullbasierte Indexposition der ersten Übereinstimmung innerhalb der Zeichenfolge zurück oder false, wenn sie nicht gefunden wird. Das folgende Beispiel zeigt:

$str = ; // Suche nach dem ersten Vorkommen von „need“ in $str$pos = strpos($str, "need"); // Anzeigetyp und Wert von $pos var_dump ($pos) ; // int(3)

Obwohl wir das Ergebnis oben mit var_dump demonstriert haben, wird eine typische Untersuchung des Rückgabewerts für strpos wie folgt durchgeführt:

// So überprüfen Sie den Rückgabewert von strpos ($pos) if ( $pos !== false ) ( // wenn die Suchzeichenfolge gefunden wurde, echo „am Speicherort $pos gefunden“ ; ) else ( echo „nicht gefunden.“ ; )

Stellen Sie sicher, dass Sie die Operatoren === oder !== verwenden, um den Rückgabewert der strpos-Funktion mit false zu vergleichen. Wenn die Teilzeichenfolge am Anfang der Zeichenfolge gefunden wird, gibt strpos 0 zurück, was den Operatoren == oder != entspricht würde in false konvertieren.

Sie können einen Offset angeben, um die Suche eine bestimmte Anzahl von Zeichen vom Anfang der Zeichenfolge beginnen zu lassen, wie dieses Beispiel zeigt:

/* strpos-Argumente: * Betreffzeichenfolge (auch bekannt als Heuhaufen), Suchzeichenfolge (Nadel), Offset (optional) */ // Suche nach „need“ ab Zeichen 10 in $str starten$pos = strpos ($str , "need" , 10 ) ; // 20

Wenn die Suche ab Zeichen 10 gestartet wird, ist das Ergebnis 20, die Indexposition des Anfangs der Wortnadel.

strrpos

Die Funktion strrpos ermittelt die Position des letzten Vorkommens eines Teilstrings in einem String:

// Beispielzeichenfolge zur Verwendung für Suchvorgänge$str = „Wir müssen die Nadel im Heuhaufen finden.“; // Ort des letzten Vorkommens von „need“ in $str finden$pos = strrpos ($str , "need" ) ; // 20

Die strrpos-Funktion stellt außerdem einen optionalen Offset-Parameter bereit, der entweder positiv oder negativ sein kann. Wenn der Offset positiv ist, wird die entsprechende Anzahl an Zeichen am Anfang der Zeichenfolge von der Suche ausgeschlossen. Betrachten Sie das folgende Beispiel:

// Suche von rechts nach „Wir“ mit Ausnahme der ersten drei Zeichen$pos = strrpos ($str , "Wir" , 3 ) ; var_dump ($pos) ; //bool(false)

Das Ergebnis ist falsch, da „Wir“ nicht gefunden wird, wenn die Suche die ersten drei Zeichen ausschließt.

Wenn der Offset negativ ist, werden so viele Zeichen am Ende der Zeichenfolge von der Suche ausgeschlossen. Wir demonstrieren dies mit zwei Suchvorgängen, die einen negativen Offset angeben:

// Suche von rechts nach „hay“, mit Ausnahme der letzten 5 Zeichen$pos = strrpos ($str , "hay" , - 5 ) ; // int(34) // Suche von rechts, mit Ausnahme der letzten 10 Zeichen$pos = strrpos ($str , "hay" , - 10 ) ; //bool(false)

Das letzte Ergebnis oben ist falsch, da „hay“ nicht gefunden wird, wenn die Suche die letzten 10 Zeichen ausschließt.

Beachten Sie, dass der Rückgabewert der strrpos-Funktion die Position vom Anfang der Zeichenfolge angibt, auch wenn die Suche von rechts beginnt.

Stripos und Stripos

Die Funktionen strpos und strrpos führen Suchvorgänge unter Berücksichtigung der Groß- und Kleinschreibung durch. PHP bietet Stripos- und Strripos-Funktionen, um Suchvorgänge ohne Berücksichtigung der Groß- und Kleinschreibung durchzuführen. Sie funktionieren genauso wie ihre Äquivalente, bei denen die Groß-/Kleinschreibung beachtet wird:

// Beispielzeichenfolge zur Verwendung für Suchvorgänge$str = „Wir müssen die Nadel im Heuhaufen finden.“; // Suche ohne Berücksichtigung der Groß-/Kleinschreibung nach „wir“ durchführen$pos = stripos($str, "we"); // int(0) // Suche von rechts nach „Need“ ohne Berücksichtigung der Groß- und Kleinschreibung durchführen$pos = strripos($str, "Need"); // int(20)

Die Suche nach „we“ ohne Berücksichtigung der Groß-/Kleinschreibung ergibt 0 , was darauf hinweist, dass es am Anfang der gesuchten Zeichenfolge gefunden wurde. Die Groß-/Kleinschreibung-Suche nach „Need“ von rechts (mit strripos) findet es an Position 20 .

strstr

Die Funktion strstr durchsucht das erste Zeichenfolgenargument nach dem zweiten. Wenn das zweite innerhalb des ersten gefunden wird, gibt strstr den Teil der ursprünglichen Zeichenfolge zurück, beginnend mit dem ersten gefundenen Vorkommen bis zum Ende der Zeichenfolge.

// Beispielzeichenfolge $str = „Wir müssen die Nadel im Heuhaufen finden.“; // Suche nach „the“ in $str $newstr = strstr ($str , „the“ ) ; var_dump ($newstr) ; // string(27) „Die Nadel im Heuhaufen.“

Die Funktion strstr gibt das erste gefundene „the“ zusammen mit dem Rest der ursprünglichen Zeichenfolge zurück.

Wenn Sie true als drittes Argument an strstr übergeben, den Teil der ursprünglichen Zeichenfolge Vor Der gefundene String wird zurückgegeben:

// true übergeben, um den Teil von $str vor „the“ zurückzugeben$newstr = strstr ($str , "the" , true ) ; var_dump ($newstr) ; // string(16) „Wir müssen finden“

Diesmal gibt die Funktion strstr alles vor dem ersten „the“ in der Zeichenfolge zurück.

PHP bietet außerdem die Funktion stristr, die genauso funktioniert wie strstr, außer dass sie eine Suche ohne Berücksichtigung der Groß- und Kleinschreibung durchführt.

strhrchr

Die Funktion strrchr durchsucht das erste String-Argument von rechts nach dem Zeichen, das wir im zweiten Argument angeben. Die Funktion gibt den Teil der Zeichenfolge von der Position der gefundenen Instanz dieses Zeichens bis zum Ende der Zeichenfolge zurück:

// Beispielzeichenfolge $str = „Wir müssen die Nadel im Heuhaufen finden.“; // Suche von rechts nach „s“ in $str$newstr = strstr ($str , "s" ); var_dump ($newstr) ; // string(6) „Stack.“

Beachten Sie, dass im Gegensatz zu strstr nur das erste verwendet wird, wenn das zweite Argument aus mehreren Zeichen besteht:

// Test mit mehrstelligem zweiten Argument$newstr = strrchr ($str , "the" ) ; var_dump ($newstr) ; // string(5) „tack.“

Anstatt „the haystack“ zurückzugeben, gibt die strrchr-Funktion „tack“ zurück und wendet nur den ersten Buchstaben des zweiten Arguments auf die Suche an.

Hallo, Habr!

Heute möchte ich neuen Webmastern eine Reihe praktischer Möglichkeiten zur Verwendung der Ausgabepufferung in PHP vorstellen. Erfahrene Webmaster werden hier wahrscheinlich nichts Nützliches finden. Obwohl – wer weiß?

Wie Sie alle wissen, wird die Ausgabepufferung in PHP durch eine Reihe von Funktionen gesteuert, die mit „ob_“ beginnen. Der wichtigste davon ist ob_start. Wenn es gestartet wird, sammelt es nachfolgende Ausgaben, also alle Arten von print(), echo usw., die dann dem Besucher in Form einer HTML-Seite bereitgestellt werden. Und wenn wir vor der Ausgabe mit dem Puffern beginnen, können wir mit dieser fast fertigen Seite endlich etwas anfangen.


Wir möchten beispielsweise alle Links zu externen Seiten herausfiltern.

In unserem Forum, so alt wie die Axt des Australopithecus, wimmelt es von Spammern, die Besucher an Orte voller Ausschweifungen, einarmiger Banditen und politischer Agitation locken. Wir könnten js mit Tracking verwenden, aber wir möchten stattdessen alle diese Links wie folgt ändern:

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

Die Methode ist vielleicht nicht die effektivste, aber sie ist effektiv. Wir haben die Datei „redirect.php“ mit einem Filter und einer Blacklist geschrieben und müssen nun alle Links auf Tausenden von Forenseiten konvertieren. Mit ob_start und ein paar regulären Ausdrücken können wir dies in nur wenigen Zeilen erledigen:

Funktion 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);

Wenn wir nun diesen Code am Anfang von index.php oder einer anderen Datei einfügen, auf die der Server beim Anzeigen von Seiten zugreift, erhalten wir, was wir brauchen.

Indem wir den Inhalt auf diese Weise ändern, sind wir nicht durch die Methoden der Engine eingeschränkt. Das kann sehr wertvoll sein. Sie können beispielsweise ein Plugin hinzufügen:

Funktion generic_plugin() ( /*etwas generieren*/ ) Funktion f_callback($buffer)( /*...*/ $buffer = str_replace ("",generate_plugin(),$buffer); /*...*/ return $buffer; ) ob_start("f_callback");

Jetzt, wo wir den Inhalt hinzugefügt haben, wird das angezeigt, was wir wollten. Eine der Anwendungen ist das Einfügen eines JS-Widgets in eine Website-Seite. Zum Beispiel Yandex-Karten. Normalerweise ist dies nicht schwierig, aber manchmal entgeht ein schlecht geschriebener Website-Seiteneditor Anführungszeichen und geschweiften Klammern, wodurch das Widget beschädigt wird. Wie Sie sehen, lässt sich dieses Problem leicht lösen.

Der Satz an PHP-Tools für die Arbeit mit dem Ausgabepuffer ist umfangreich und beschränkt sich nicht nur auf ob_start. Die oben beschriebenen Methoden sind teilweise zu ressourcenintensiv und umständlich, da sie auf der gesamten Seite wirken. Wir können nur einen Teil davon verarbeiten, indem wir in der Vorlage einen Wrapper um die Generierung von etwas erstellen, auf das wir nicht eingehen wollen, das aber unbedingt behoben werden muss:

(GROSSE VERRÜCKTE DING GENERIEREN)

Diese Sätze sind Ihnen sicher schon aufgefallen: „Ich will mich nicht darauf einlassen“, „so alt wie ein Tyrannosaurus-Stuhl“, „ein schief geschriebener Editor“ ... In einer idealen Welt sind es Hüllen um den Ausgabepuffer nicht benötigt. Alles, was mit ob_start möglich ist, könnte theoretisch auch ohne es erledigt werden. Diese Technik führt manchmal zu Verwirrung im Projektcode; viele sehen ihre Bedeutung nur darin, die Ausgabe zur Komprimierung an ob_gzhandler zu senden, und halten ihre Verwendung in anderen Fällen für gefährlich. Doch oft kommt man ohne Leistungskontrolle einfach nicht aus.

Vor allem, wenn Sie nicht tief graben möchten.

(PHP 4, PHP 5, PHP 7)

ob_start — Aktivieren Sie die Ausgabepufferung

Beschreibung

Bool ob_start ([ abrufbar$output_callback = NULL [, int $chunk_size = 0 [, int $flags = PHP_OUTPUT_HANDLER_STDFLAGS ]]])

Diese Funktion ermöglicht die Ausgabepufferung. Wenn die Ausgabepufferung aktiv ist, wird die Skriptausgabe nicht gesendet (außer Header), sondern in einem internen Puffer gespeichert.

Der Inhalt dieses internen Puffers kann mit in eine String-Variable kopiert werden ob_get_contents(). Um den Inhalt des internen Puffers auszugeben, sollten Sie ihn verwenden ob_end_flush(). Alternativ können Sie verwenden ob_end_clean() um den Inhalt des Puffers zu zerstören.

Aufmerksamkeit

Einige Webserver (z. B. Apache) ändern das Arbeitsverzeichnis des Skripts, wenn die Callback-Funktion aufgerufen wird. Sie können es mit zurückbekommen chdir(dirname($_SERVER["SCRIPT_FILENAME"])) in der Callback-Funktion.

Ausgabepuffer werden auf den Stapel gelegt, was bedeutet, dass Aufrufe zulässig sind ob_start() nach dem Aufruf eines anderen Aktiven ob_start(). In diesem Fall ist ein Anruf erforderlich ob_end_flush() entsprechend oft. Wenn mehrere Callback-Funktionen aktiv sind, wird die Ausgabe nacheinander für jede von ihnen in verschachtelter Reihenfolge gefiltert.

Liste der Parameter

Ein optionaler Output_callback-Parameter kann angegeben werden. Diese Funktion benötigt einen String als Argument und muss auch einen String zurückgeben. Es wird aufgerufen, wenn ein Reset (Senden) oder eine Bereinigung (mit) erfolgt ob_flush(), ob_clean() oder ähnliche Funktionen) oder wenn der Ausgabepuffer am Ende der Anfrage an den Browser geleert wird. Wenn die Funktion „output_callback“ aufgerufen wird, empfängt sie den Inhalt des Puffers und muss den aktualisierten Inhalt zurückgeben, damit der Ausgabepuffer an den Browser gesendet werden kann. Wenn „output_callback“ keine gültige Funktion ist, wird die dokumentierte Funktion zurückgegeben FALSCH. Funktionsbeschreibung für diesen Parameter:

Zeichenfolge Handler (Zeichenfolge $buffer [, int $phase ])

Puffer Inhalt des Ausgabepuffers. Phase Bitmaske von Konstanten PHP_OUTPUT_HANDLER_*.

Wenn Output_Callback zurückkehrt FALSCH, dann werden die ursprünglichen Informationen unverändert an den Browser gesendet.

Der Parameter „output_callback“ kann durch Übergabe des Werts ignoriert werden NULL.

ob_end_clean(), ob_end_flush(), ob_clean(), ob_flush() Und ob_start() können nicht von Callback-Funktionen aufgerufen werden, da ihr Verhalten unvorhersehbar ist. Wenn Sie den Inhalt des Puffers löschen möchten, geben Sie „“ (eine leere Zeichenfolge) von der Rückruffunktion zurück. Sie können auch keine Funktionen aufrufen print_r($expression, true) oder highlight_file($filename, true) von Callback-Funktionen zur Ausgabepufferung.

Kommentar:

In PHP 4.0.4 die Funktion ob_gzhandler() wurde eingeführt, um das Senden von GZ-codierten Daten an Webbrowser zu erleichtern, die komprimierte Webseiten unterstützen. ob_gzhandler() Bestimmt den vom Browser akzeptierten Inhaltskodierungstyp und gibt die entsprechende Ausgabe zurück.

chunk_size

Wenn der optionale Parameter chunk_size übergeben wird, wird der Puffer nach jeder Ausgabe geleert, deren Größe größer oder gleich chunk_size ist. Standardwert 0 bedeutet, dass die Ausgabefunktion aufgerufen wird, wenn der Puffer geschlossen ist.

Vor PHP 5.4.0, Wert 1 war ein spezieller Wert, der den Parameter festlegte chunk_size bei 4096.

Der Flags-Parameter ist eine Bitmaske, die die Vorgänge steuert, die am Ausgabepuffer ausgeführt werden können. Standardmäßig ermöglicht es das Leeren, Leeren und Löschen des Ausgabepuffers, was dasselbe ist wie | | , oder PHP_OUTPUT_HANDLER_STDFLAGS als Abkürzung für diese Kombination.

Jedes Flag steuert den Zugriff auf eine Reihe von Funktionen, wie unten beschrieben:

Konstante Funktionen
PHP_OUTPUT_HANDLER_CLEANABLE ob_clean(), ob_end_clean(), Und ob_get_clean().
PHP_OUTPUT_HANDLER_FLUSHABLE ob_end_flush(), ob_flush(), Und ob_get_flush().
PHP_OUTPUT_HANDLER_REMOVABLE ob_end_clean(), ob_end_flush(), Und ob_get_flush().

Rückgabewerte

Kehrt zurück WAHR nach erfolgreichem Abschluss bzw FALSCH im Falle eines Fehlers.

Liste der Änderungen

Ausführung Beschreibung
7.0.0 Wenn ob_start() Wenn diese Funktion innerhalb der Callback-Funktion des Ausgabepuffers verwendet wird, generiert sie keinen Fehler mehr E_ERROR, ruft aber stattdessen an E_RECOVERABLE_ERROR, sodass Fehlerhandler von Drittanbietern es abfangen können.
5.4.0 Dritter Parameter ob_start() geändert von boolean ( Boolescher Wert) des Löschparameters (der, wenn er auf eingestellt ist FALSCH verhinderte, dass der Puffer gelöscht wurde, bis das Skript abgeschlossen war) in eine Ganzzahl ( ganze Zahl) Flags-Parameter. Leider bedeutet dies eine API-Inkompatibilität für Code, der den dritten Parameter vor PHP 5.4.0 verwendet hat. Sehen Sie sich das Flags-Beispiel an, um zu verstehen, wie Sie mit dem Code arbeiten, damit er mit beiden Versionen kompatibel ist.
5.4.0 Parameter chunk_size, eingebaut in 1 , führt nun dazu, dass 1 Byte in den Ausgabepuffer ausgegeben wird.
4.3.2 Die Funktion wird zurückgegeben FALSCH für den Fall, dass Output_callback nicht ausgeführt werden kann.

Beispiele

Beispiel Nr. 1 Beispiel einer benutzerdefinierten Callback-Funktion

Funktionsrückruf ($buffer)
{
// alle Äpfel durch Orangen ersetzen
return (str_replace("apples", "oranges", $buffer));
}

Ob_start("callback");

?>


Es ist, als würde man Äpfel und Birnen vergleichen.






ob_end_flush();