tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
937
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Subwoover Subwoover ist offline Mitglied Platin
    Registriert seit
    Dec 2001
    Ort
    Wien
    Beiträge
    532
    Jo ich hab seit längerem ob_start in meiner _head.php aber keine ahnung warum

    und da hab ich halt mal in der manual nachgelesen und bin ehrlich gesagt auch nicht schlauer geworden...
    irgendwas mit "Diese Funktion schaltet die Pufferung von Ausgaben ein."

    Nur sagt mir das ned viel, sorry ich kann mir drunter nicht viel vorstellen? Wie kann man sich das ganze denn vorstellen?
    Was bringen mir die befehle ob_start und ob_end_flush?

    Und wie kann ich damit sinnvoll arbeiten?

    grüsse, suB
     

  2. #2
    vanteX vanteX ist offline Mitglied
    Registriert seit
    Jun 2003
    Ort
    Aglasterhausen bei Heidelberg
    Beiträge
    23
    ob_start
    Diese Funktion schaltet die Pufferung von Ausgaben ein. Solange die Ausgabe-Pufferung aktiv ist, erfolgt keine Ausgabe bei der Skript-Ausführung. Statt dessen werden alle Ausgaben in einem internen Puffer gespeichert.

    Der Inhalt diese internen Puffers kann in eine String-Variable kopiert werden (per ob_get_contents()). Die Ausgabe erfolgt erst bei Aufruf von ob_end_flush() und sobald der Puffer-Inhalt per ob_end_clean() verworfen wird.



    ob_end_flush
    Der Inhalt des Ausgabe-Puffers (sofern vorhanden) wird abgeschickt und die Pufferung der Ausgabe deaktiviert. Falls sie mit dem Puffer-Inhalt weiter arbeiten möchten, müssen sie diesen erst per ob_get_contents() zwischen speichern bevor sie ob_end_flush() aufrufen, da dadurch der Puffer geleert wird.




    Ist doch eigentlich recht deutlich beschrieben was die Funktionen bewirken oder?Frägt sich nur wie die da plötzlich in deinen Code rein kommen
     
    mfg,
    vanteX

  3. #3
    Subwoover Subwoover ist offline Mitglied Platin
    Registriert seit
    Dec 2001
    Ort
    Wien
    Beiträge
    532
    ja und was kann ich nun damit bewirken mit den befehlen?
    ich glaub ich hab sie mal aus einem grund von cookies reingegeben...

    irgendwie wurde mein header schon aufgerufen und da hat diese funktion geholfen oder so
    aber was kann ich damit erreichen? effektiv...
     

  4. #4
    vanteX vanteX ist offline Mitglied
    Registriert seit
    Jun 2003
    Ort
    Aglasterhausen bei Heidelberg
    Beiträge
    23
    Effektiv fällt mir da auch kein Beispiel ein.
    Du kannst halt die Ausgabe zurückhalten und das dann später ausgeben.Vielleicht gäbe das dann eine Möglichkeit das du es nach der Pufferung nochmal filterst oder so, aber was konkretes fällt mir nicht ein!
     
    mfg,
    vanteX

  5. #5
    Registriert seit
    Feb 2002
    Ort
    Österreich | Vorarlberg
    Beiträge
    613
    deiner erklärung nach sollte das:
    PHP-Code:
    <?php
    $str_1 
    "foobar rockz<hr>";
    $str_2 "aso is das";
    ob_start();
    echo 
    $str_1;
    ob_flush();
    ?>
    foobar rock<hr> ausgeben...

    und das:
    PHP-Code:
    <?php
    $str_1 
    "foobar rockz<hr>";
    $str_2 "aso is das";
    ob_start();
    echo 
    $str_1;
    ?>
    sollte garnichts ausgeben... in beiden fällen gibt es mir den string aber aus... hab ich da was falsch verstanden?

    greetz
     

  6. #6
    methodus methodus ist offline Mitglied Platin
    Registriert seit
    Mar 2002
    Ort
    Leipzig
    Beiträge
    543
    ob_start() und ob_end_flush() kommt eigentlich am meisten dann zum einsatz, wenn man die ausgabe bestimmter dinge verzögern möchte.

    zum beispiel:
    PHP-Code:
    <?php
    highlight_file
    __FILE__ );
    ?>
    gibt sofort den hervorgehobenen Text aus. Die Möglichkeit, das noch irgendwo weiterzuverwenden ist nicht gegeben.

    PHP-Code:
    <?php
    ob_start
    ();
    highlight_file__FILE__ );
    $highlight ob_get_content();
    ob_end_clean();

    echo 
    $highlight;
    ?>
    speichert den syntaxhighlighter erst in der variable und man kann dann den inhalt ausgeben wo man will. z.B. könnte man das noch jeweils in zeilen aufsplitten und davor eine Zeilennummer schreiben.

    @ Samuel:
    du musst deinen puffer immer mit ob_end_clean bzw. ob_end_flush beenden, damit es klappt. ob_flush sendet nur den Puffer!
    Geändert von methodus (31.07.03 um 07:37 Uhr)
     
    Empirismus, die lieblingsmethode aller mir bekannter Programmierer :]

Ähnliche Themen

  1. Fehlermeldung bei ob_start()?
    Von jackie05 im Forum PHP
    Antworten: 5
    Letzter Beitrag: 08.07.08, 23:53
  2. ob_start und ob_end_flush
    Von SigmundK im Forum PHP
    Antworten: 1
    Letzter Beitrag: 21.02.07, 20:39
  3. header, ob_start und ob_end_flush
    Von Eaden im Forum PHP
    Antworten: 6
    Letzter Beitrag: 19.04.05, 15:16
  4. Antworten: 2
    Letzter Beitrag: 02.03.05, 18:04
  5. ob_start() und header() ?
    Von Funjoy im Forum PHP
    Antworten: 12
    Letzter Beitrag: 12.11.04, 17:10