Ob_get_Contents () wird verwendet, um den Inhalt im aktuellen PHP -Ausgangspuffer zu erhalten. In Kombination mit OB_Start () können wir zuerst den Ausgangsinhalt speichern, anstatt ihn direkt an den Browser zu senden, damit wir die Ausgabe sekundär verarbeiten oder speichern können.
ob_start(); // Schalten Sie den Ausgangspuffer ein
echo "Hello, world!";
$content = ob_get_contents(); // Holen Sie sich den Pufferinhalt
ob_end_clean(); // Schließen Sie den Puffer und löschen Sie den Inhalt
echo "Captured content: " . $content;
Der obige Code erfasst die String -Ausgabe per Echo , speichert es in $ content und dann aus.
Asynchrone Anfragen beziehen sich im Allgemeinen auf den Client, der eine Anforderung über JavaScript (z. B. AJAX) an den Server sendet und das Rückgabeergebnis erhalten hat, ohne die Seite zu aktualisieren. Wenn PHP diese Anforderungen auf der Serverseite verarbeitet, muss es manchmal den Ausgabehalt erfassen und dann nach der Verarbeitung an das Frontend zurückgeben.
Durch OB_Get_Contents () können die Ausführungsergebnisse asynchroner Anfragen (z.
Angenommen, Sie senden eine Anfrage an async_handler.php über AJAX, PHP muss einen dynamisch generierten Inhalt zurückgeben. Wir verwenden Ob_get_Contents (), um die Ausgabe zu erfassen und an den Anrufer zurückzugeben.
<?php
// Ausgangspufferung einschalten
ob_start();
// Simulieren Sie die asynchrone Verarbeitungslogik
echo "<div>Dies wird asynchron zurückgegeben,Aktuelle Zeit:" . date('H:i:s') . "</div>";
// Pufferinhalt erfassen
$content = ob_get_contents();
// Den Puffer schließen und reinigen
ob_end_clean();
// Den erfassten Inhalt als Antwort ausgeben
echo $content;
?>
$.ajax({
url: 'http://gitbox.net/async_handler.php',
method: 'GET',
success: function(response) {
// Fügen Sie den zurückgegebenen Inhalt in die Seite ein
$('#result').html(response);
},
error: function() {
alert('Anfrage fehlgeschlagen');
}
});
Manchmal möchten wir asynchrone Anforderungen innerhalb von PHP einleiten und die Ergebnisse erhalten, die auch mit OB_get_Contents () in Kombination mit Curl implementiert werden können.
<?php
function getAsyncContent($url) {
ob_start();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
echo $result; // Ausgabe curl Zurück zu Inhalt zurückkehren
$content = ob_get_contents();
ob_end_clean();
return $content;
}
$url = "http://gitbox.net/async_handler.php";
$response = getAsyncContent($url);
echo "Asynchroner Anforderungsergebnis auf dem Server:" . $response;
?>
Mit Ob_Get_Contents () können Sie den Ausgangspufferinhalt von PHP -Skripten erfassen und die Ausgabedaten flexibel verarbeiten.
Bei der asynchronen Anforderungsverarbeitung werden die Ergebnisse mithilfe von Puffern erfasst, um dynamische Inhalte einfach zu steuern und zurückzugeben.
Unabhängig davon, ob es sich um eine Front-End-AJAX-Anforderung handelt oder ein PHP-Server asynchroner Anrufe initiiert, kann OB_Get_Contents () Ihnen helfen, die Ausgabe zu erhalten und zu bedienen und die Skalierbarkeit und Wartbarkeit Ihrer Anwendung zu verbessern.
Wenn diese Technologie gemeistert wird, werden Sie sich im Umgang mit komplexer asynchroner Logik wohler fühlen.