<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.outcontrol.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'de',
  ),
  'this' => 
  array (
    0 => 'function.ob-start.php',
    1 => 'ob_start',
    2 => 'Ausgabepufferung aktivieren',
  ),
  'up' => 
  array (
    0 => 'ref.outcontrol.php',
    1 => 'Output-Control-Funktionen',
  ),
  'prev' => 
  array (
    0 => 'function.ob-list-handlers.php',
    1 => 'ob_list_handlers',
  ),
  'next' => 
  array (
    0 => 'function.output-add-rewrite-var.php',
    1 => 'output_add_rewrite_var',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    'path' => 'reference/outcontrol/functions/ob-start.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.ob-start" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">ob_start</h1>
  <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">ob_start</span> &mdash; <span class="dc-title">Ausgabepufferung aktivieren</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.ob-start-description">
  <h3 class="title">Beschreibung</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>ob_start</strong></span>(<span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.callable.php" class="type callable">callable</a></span></span> <code class="parameter">$callback</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span>, <span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$chunk_size</code><span class="initializer"> = 0</span></span>, <span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$flags</code><span class="initializer"> = <strong><code><a href="outcontrol.constants.php#constant.php-output-handler-stdflags">PHP_OUTPUT_HANDLER_STDFLAGS</a></code></strong></span></span>): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>

  <p class="para rdfs-comment">
   Diese Funktion aktiviert die Ausgabepufferung. Während die Ausgabepufferung
   aktiv ist, werden Skriptausgaben nicht direkt an den Client weitergegeben,
   sondern in einem internen Puffer gesammelt. Welche Ausgaben genau betroffen
   sind, ist unter <a href="outcontrol.what-output-is-buffered.php" class="xref">What Output Is Buffered?</a>
   beschrieben.
  </p>
  <p class="para">
   Ausgabepuffer können verschachtelt werden, d. h.
   <span class="function"><strong>ob_start()</strong></span> kann erneut aufgerufen werden, während
   bereits ein anderer Puffer aktiv ist. Sind mehrere Ausgabepuffer aktiv,
   wird die Ausgabe in der Reihenfolge der Verschachtelung durch jeden dieser
   Puffer gefiltert. Siehe <a href="outcontrol.nesting-output-buffers.php" class="xref">Nesting Output Buffers</a>
   für weitere Einzelheiten.
  </p>
  <p class="para">
   Eine ausführliche Beschreibung der Ausgabepuffer ist unter
   <a href="outcontrol.user-level-output-buffers.php" class="xref">User-Level Output Buffers</a> zu finden.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.ob-start-parameters">
  <h3 class="title">Parameter-Liste</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">callback</code></dt>
     <dd>
      <p class="para">
       Optional kann ein
       <code class="parameter">callback</code>-<span class="type"><a href="language.types.callable.php" class="type Callable">Callable</a></span> angegeben
       werden. Dieses kann auch durch Übergabe von <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong> umgangen werden.
      </p>
      <p class="para">
       <code class="parameter">callback</code> wird aufgerufen, wenn der Ausgabepuffer
       geleert (gesendet), bereinigt oder am Ende des Skripts geleert wird.
      </p>
      <p class="para">
       Die Signatur von <code class="parameter">callback</code> ist wie folgt:
      </p>
      <p class="para">
       <div class="methodsynopsis dc-description">
        <span class="methodname"><span class="replaceable">handler</span></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$buffer</code></span>, <span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$phase</code><span class="initializer"> = ?</span></span>): <span class="type"><a href="language.types.string.php" class="type string">string</a></span></div>

       <dl>
        
         <dt><code class="parameter">buffer</code></dt>
         <dd>
          <span class="simpara">
           Der Inhalt des Ausgabepuffers.
          </span>
         </dd>
        
        
         <dt><code class="parameter">phase</code></dt>
         <dd>
          <span class="simpara">
           Eine Bitmaske von
           <a href="outcontrol.constants.php#constant.php-output-handler-start" class="link">
            <strong><code><a href="outcontrol.constants.php#constant.php-output-handler-start">PHP_OUTPUT_HANDLER_<span class="replaceable">*</span></a></code></strong>-Konstanten
           </a>.
           Weitere Einzelheiten sind unter
           <a href="outcontrol.flags-passed-to-output-handlers.php" class="xref">Flags Passed To Output Handlers</a>
           zu finden.
          </span>
         </dd>
        
       </dl>
      </p>
      <p class="para">
       Wenn <code class="parameter">callback</code> <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> zurückgibt, wird der
       Inhalt des Puffers zurückgegeben.
       Weitere Einzelheiten sind unter
       <a href="outcontrol.output-handler-return-values.php" class="xref">Output Handler Return Values</a> zu finden.
      </p>
      <div class="warning"><strong class="warning">Warnung</strong>
       <p class="simpara">
        Wenn eine der folgenden Funktionen innerhalb eines Ausgabe-Handlers
        aufgerufen wird, führt dies zu einem schwerwiegenden Fehler:
        <span class="function"><a href="function.ob-clean.php" class="function">ob_clean()</a></span>, <span class="function"><a href="function.ob-end-clean.php" class="function">ob_end_clean()</a></span>,
        <span class="function"><a href="function.ob-end-flush.php" class="function">ob_end_flush()</a></span>, <span class="function"><a href="function.ob-flush.php" class="function">ob_flush()</a></span>,
        <span class="function"><a href="function.ob-get-clean.php" class="function">ob_get_clean()</a></span>, <span class="function"><a href="function.ob-get-flush.php" class="function">ob_get_flush()</a></span>,
        <span class="function"><strong>ob_start()</strong></span>.
       </p>
      </div>
      <p class="para">
       Weitere Einzelheiten zu <code class="parameter">callback</code>s
       (Ausgabe-Handler) sind unter
       <a href="outcontrol.output-handlers.php" class="xref">Output Handlers</a> und
       <a href="outcontrol.working-with-output-handlers.php" class="xref">Working With Output Handlers</a> zu finden.
      </p>
     </dd>
    
    
     <dt><code class="parameter">chunk_size</code></dt>
     <dd>
      <p class="para">
       Wird der optionale Parameter <code class="parameter">chunk_size</code>
       übergeben, dann wird der Puffer nach jedem Codeblock geleert, der zu
       einer Ausgabe führt, durch die der Puffer die Größe von
       <code class="parameter">chunk_size</code> erreicht oder überschreitet. Der
       Vorgabewert <code class="literal">0</code> bedeutet, dass die gesamte Ausgabe
       gepuffert wird, bis der Puffer ausgeschaltet wird.
       Weitere Einzelheiten sind unter
       <a href="outcontrol.buffer-size.php" class="xref">Buffer Size</a> zu finden.
      </p>
     </dd>
    
    
     <dt><code class="parameter">flags</code></dt>
     <dd>
      <p class="para">
       Beim Parameter <code class="parameter">flags</code> handelt es sich um eine
       Bitmaske, die die Operationen steuert, die mit dem Ausgabepuffer
       durchgeführt werden können. Die Vorgabe ist, zu erlauben, dass
       Ausgabepuffer bereinigt, geleert und entfernt werden dürfen, was
       ausdrücklich mit den
       <a href="outcontrol.constants.php#outcontrol.constants.buffer-control-flags" class="link">
        Flags für die Steuerung des Ausgabepuffers
       </a>.
       eingestellt werden kann.
       Weitere Einzelheiten sind unter
       <a href="outcontrol.operations-on-buffers.php" class="xref">Operations Allowed On Buffers</a> zu finden.
      </p>
      <p class="para">
       Jedes Flag steuert den Zugriff auf einen Satz von Funktionen, wie im
       Folgenden beschrieben:
       <table class="doctable informaltable">
        
         <thead>
          <tr>
           <th>Konstante</th>
           <th>Funktionen</th>
          </tr>

         </thead>

         <tbody class="tbody">
          <tr>
           <td><strong><code><a href="outcontrol.constants.php#constant.php-output-handler-cleanable">PHP_OUTPUT_HANDLER_CLEANABLE</a></code></strong></td>
           <td>
            <span class="function"><a href="function.ob-clean.php" class="function">ob_clean()</a></span>
           </td>
          </tr>

          <tr>
           <td><strong><code><a href="outcontrol.constants.php#constant.php-output-handler-flushable">PHP_OUTPUT_HANDLER_FLUSHABLE</a></code></strong></td>
           <td>
            <span class="function"><a href="function.ob-flush.php" class="function">ob_flush()</a></span>
           </td>
          </tr>

          <tr>
           <td><strong><code><a href="outcontrol.constants.php#constant.php-output-handler-removable">PHP_OUTPUT_HANDLER_REMOVABLE</a></code></strong></td>
           <td>
            <span class="function"><a href="function.ob-end-clean.php" class="function">ob_end_clean()</a></span>,
            <span class="function"><a href="function.ob-end-flush.php" class="function">ob_end_flush()</a></span>,
            <span class="function"><a href="function.ob-get-clean.php" class="function">ob_get_clean()</a></span>,
            <span class="function"><a href="function.ob-get-flush.php" class="function">ob_get_flush()</a></span>
           </td>
          </tr>

         </tbody>
        
       </table>

       <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
        <span class="simpara">
         Vor PHP 8.4.0 konnte der Parameter flags auch die
         <a href="outcontrol.constants.php#outcontrol.constants.flags-returned-by-handler" class="link">Statusflags des Ausgabe-Handlers</a>
         setzen.
        </span>
       </p></blockquote>
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.ob-start-returnvalues">
  <h3 class="title">Rückgabewerte</h3>
  <p class="para">
   Gibt bei Erfolg <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> zurück. Bei einem Fehler wird <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> zurückgegeben.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.ob-start-examples">
  <h3 class="title">Beispiele</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Beispiel #1 Beispiel einer benutzerdefinierten Callback-Funktion</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #007700">function </span><span style="color: #0000BB">callback</span><span style="color: #007700">(</span><span style="color: #0000BB">$buffer</span><span style="color: #007700">)<br />{<br />  </span><span style="color: #FF8000">// ersetzt alle Äpfel mit Birnen<br />  </span><span style="color: #007700">return (</span><span style="color: #0000BB">str_replace</span><span style="color: #007700">(</span><span style="color: #DD0000">"Äpfel"</span><span style="color: #007700">, </span><span style="color: #DD0000">"Birnen"</span><span style="color: #007700">, </span><span style="color: #0000BB">$buffer</span><span style="color: #007700">));<br />}<br /><br /></span><span style="color: #0000BB">ob_start</span><span style="color: #007700">(</span><span style="color: #DD0000">"callback"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">?&gt;<br /></span>&lt;html&gt;<br />&lt;body&gt;<br />&lt;p&gt;Das ist wie Äpfel mit Birnen zu vergleichen.&lt;/p&gt;<br />&lt;/body&gt;<br />&lt;/html&gt;<br /><span style="color: #0000BB">&lt;?php<br /><br />ob_end_flush</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>Das oben gezeigte Beispiel erzeugt folgende Ausgabe:</p></div>
    <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">&lt;html&gt;
&lt;body&gt;
&lt;p&gt;Das ist wie Birnen mit Birnen zu vergleichen.&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
</div>
    </div>
   </div>
  </p>

  <p class="para">
   <div class="example" id="function.ob-start.flags-bc">
    <p><strong>Beispiel #2 Erzeugen eines nicht löschbaren Ausgabepuffers</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />ob_start</span><span style="color: #007700">(</span><span style="color: #0000BB">null</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">PHP_OUTPUT_HANDLER_STDFLAGS </span><span style="color: #007700">^ </span><span style="color: #0000BB">PHP_OUTPUT_HANDLER_REMOVABLE</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.ob-start-seealso">
  <h3 class="title">Siehe auch</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.ob-get-contents.php" class="function" rel="rdfs-seeAlso">ob_get_contents()</a> - Liefert den Inhalt des Ausgabepuffers</span></li>
    <li><span class="function"><a href="function.ob-end-clean.php" class="function" rel="rdfs-seeAlso">ob_end_clean()</a> - L&ouml;scht den Inhalt des aktiven Ausgabepuffers und deaktiviert ihn</span></li>
    <li><span class="function"><a href="function.ob-end-flush.php" class="function" rel="rdfs-seeAlso">ob_end_flush()</a> - Leert (sendet) den R&uuml;ckgabewert des aktiven Ausgabe-Handlers und
   deaktiviert den aktiven Ausgabepuffer</span></li>
    <li><span class="function"><a href="function.ob-implicit-flush.php" class="function" rel="rdfs-seeAlso">ob_implicit_flush()</a> - Schaltet die implizite Ausgabe ein bzw. aus</span></li>
    <li><span class="function"><a href="function.ob-gzhandler.php" class="function" rel="rdfs-seeAlso">ob_gzhandler()</a> - ob_start callback function to gzip output buffer</span></li>
    <li><span class="function"><a href="function.ob-iconv-handler.php" class="function" rel="rdfs-seeAlso">ob_iconv_handler()</a> - Konvertiert Zeichensatzkodierung als Ausgabepuffer-Handler (output buffer
   handler)</span></li>
    <li><span class="function"><a href="function.mb-output-handler.php" class="function" rel="rdfs-seeAlso">mb_output_handler()</a> - Callback function converts character encoding in output buffer</span></li>
    <li><span class="function"><a href="function.ob-tidyhandler.php" class="function" rel="rdfs-seeAlso">ob_tidyhandler()</a> - ob_start callback function to repair the buffer</span></li>
   </ul>
  </p>
 </div>


</div><?php manual_footer($setup); ?>