ホームページ バックエンド開発 PHPチュートリアル PHP_PHP チュートリアルのバッファ制御の実装コード

PHP_PHP チュートリアルのバッファ制御の実装コード

Jul 21, 2016 pm 04:13 PM
header php s コード 使用 そして 存在する 成し遂げる コントロール バッファ

PHP を使用する場合、誰もが必然的に header 関数と setcookie 関数を使用します。これら 2 つの関数はファイルのヘッダー情報をブラウザーに送信しますが、これら 2 つの関数を使用する前に出力 (空白を含む) がある場合は、次のような出力が行われます。スペース、キャリッジ リターン、ライン フィードなどを使用すると、エラーが表示されます。プロンプト情報は次のとおりです。「ヘッダーはすべて送信準備ができました」!では、出力後にファイルのヘッダー情報を送信する方法はあるのでしょうか? PHP 4.0 にはバッファ制御のための関数がいくつか追加されています。これらの関数を使用すると、多くの問題を解決できます。

1. 関連機能の紹介:

1. フラッシュ: バッファー内の内容を出力し、バッファーを削除します。

関数形式:flush()

注: この機能は頻繁に使用され、非常に効率的です。

2. ob_start: 出力バッファを開きます

関数形式: void ob_start(void)

注: バッファーがアクティブ化されると、PHP プログラムからのファイル以外のヘッダー情報はすべて送信されず、内部バッファーに保存されます。バッファの内容を出力するには、ob_end_flush() を使用するか、ob_end_clean() を使用してバッファの内容を出力します。

3、ob_get_contents: 内部バッファの内容を返します。

使用法: 文字列 ob_get_contents(void)

説明: この関数は、出力バッファがアクティブ化されていない場合、現在のバッファの内容を返します。FALSE を返します。

4. ob_get_length: 内部バッファーの長さを返します。

使用法: int ob_get_length(void)

説明: この関数は、出力バッファがアクティブ化されていない場合、ob_get_contents と同じように現在のバッファの長さを返します。その後、FALSE を返します。

5. ob_end_flush: 内部バッファの内容をブラウザに送信し、出力バッファを閉じます。

使用法: void ob_end_flush(void)

説明: この関数は、出力バッファーの内容 (存在する場合) を送信します。

6. ob_end_clean: 内部バッファの内容を削除し、内部バッファを閉じます

使用法: void ob_end_clean(void)

注意: この関数は内部バッファの内容を出力しません。

7. ob_implicit_flush: 絶対リフレッシュをオンまたはオフにします

使用法: void ob_implicit_flush ([int flag])

注: Perl を使用したことがある人なら誰でも、?$|=x の意味を知っています。この文字列はバッファを開いたり閉じたりできます。デフォルトでは、バッファを閉じて絶対出力を開きます。

2. 使用例:

冒頭で、著者はバッファ制御関数を使用すると、ファイルヘッダー内の情報送信時のエラーを防ぐことができると述べました。例を次に示します。

コードをコピーします コードは次のとおりです:
ob_start(); //バッファを開きます
echo "Hello/n" //Output
header(' location:gotourl .php'); // ブラウザを gotourl.php にリダイレクトします
?>

ob_start が削除されると、PHP はファイルの 4 行目でエラーを表示します (エラー メッセージは上記のとおりです)。ただし、ob_start を追加すると、バッファが開かれるときにエラーは表示されません。 echo の後の文字は出力されません。出力はブラウザに送信されますが、サーバーには残ります。flush または ob_end_flush を使用するまで出力されないため、ファイル ヘッダーの出力エラーは発生しません。

以下は非常に古典的な使用法です:

例えば、 を使用してサーバーとクライアントの設定情報を取得しますが、この情報はクライアントによって異なります。phpinfo() の出力を保存したい場合はどうすればよいですか。 ) 関数?バッファ制御が存在しない前は、まったく方法がなかったと言えますが、バッファ制御を使用すると、それを簡単に解決できます。

コードをコピーします コードは次のとおりです:
ob_start(); //バッファを開きます
phpinfo() //phpinfo関数を使用します
?$info=ob_get_contents(); ; //バッファの内容を取得し、?$info
?$file=fopen('info.txt','w') //ファイルを開く info.txt
fwrite(?$file, ?$info); // info.txt
fclose(?$file); // ファイルを閉じる info.txt
?>

上記の方法を使用すると、さまざまなユーザーの phpinfo 情報を保存できます。これは以前は不可能だったかもしれません。実は上記は一部の「処理」を「関数」に変換する方法なのです!

http://www.bkjia.com/PHPjc/313531.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/313531.html技術記事 PHPを使うと必然的にheader関数とsetcookie関数を使うことになりますが、この2つの関数はブラウザにファイルのヘッダ情報を送信することになりますが、もしこの2つの関数を以前に使っていれば…
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

See all articles