ここでプログラムが実行される前に出力があるかどうかを PHP で検出する方法はありますか?
私は header() の問題を解決しようとしているわけではありませんが、プログラムにはこの要件を持つ関数があることに注意してください。
逆に、ヘッダーを送ることで検知できるか、Cookie(真実)を設定できないか考えてみました。しかし、PHPにはoutput_bufferingメカニズムがあるため、このアプローチは実行できないと言われています。なぜなら、このメカニズムを残酷にオフにすると、他の予期せぬ問題が発生する可能性があり、すべての環境をオフにできるわけではないからです。
たとえ機能しても、Cookie は常に少し遅く、設定後すぐに取得できません。ヘッダーを送信すると http ヘッダーに無駄なものが混入してしまいます。
それ。 。 。
この需要を満たす方法はありますか?
(プログラムの他の部分のコードを変更したくない)
返信内容:
header() の問題を解決しようとしているわけではありませんが、プログラムにはこの要件を持つ関数があることに注意してください。
逆に、ヘッダーを送ることで検知できないか、Cookie(真実)を設定できないか考えてみました。しかし、PHPにはoutput_bufferingメカニズムがあるため、このアプローチは実行できないと言われています。なぜなら、このメカニズムを残酷にオフにすると、他の予期せぬ問題が発生する可能性があり、すべての環境をオフにできるわけではないからです。
たとえ機能しても、Cookie は常に少し遅く、設定後すぐに取得できません。ヘッダーを送信するとhttpヘッダーに無駄なものが混入してしまいます。
それ。 。 。
この需要を満たす方法はありますか?
(プログラムの他の部分のコードを変更したくない)
headers_sent()
を使用して、ニーズを満たすヘッドが発行されているかどうかを判断しますか?コンテンツが出力されている場合は、ヘッダーが送信されている必要があります。
PHP の出力メカニズムは、echo
などの命令を使用した直後に出力するのではなく、まずコンテンツのこの部分をバッファーに入れます。 (いわゆるバッファは共有メモリの一部です) メモリがいっぱいになるか、スクリプトが終了すると、PHP はこのメモリを nginx または apache に渡して出力します。 echo
之类的指令就会立即输出的,而是先将这部分内容放到一个缓冲区里区。(所谓缓冲区就是一块共享内存),等内存满了或者脚本结束的时候,php才会将这块内存交付给nginx或者apache来输出。
因此,要想实现你的需求,只需要判断缓冲区里有没有内容即可。
php给我们提供了这样的函数,即ob_get_contents
したがって、ニーズを達成するには、バッファーにコンテンツがあるかどうかを判断するだけで済みます。
ob_get_contents
🎜 を提供します。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











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

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

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

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