ホームページ > バックエンド開発 > PHPチュートリアル > PHP は、curl を使用して HTTP チャンクデータを読み取ります

PHP は、curl を使用して HTTP チャンクデータを読み取ります

WBOY
リリース: 2016-07-29 09:00:06
オリジナル
1528 人が閲覧しました

Web サーバーから返される HTTP チャンク データの場合、すべての応答が返された後にコールバックするのではなく、各チャンクが返されるときにコールバックを取得する必要がある場合があります。たとえば、サーバーが icomet の場合です。 PHP は次のとおりです:

<?php  
$url = "http://127.0.0.1:8100/stream";

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'myfunc');
$result = curl_exec($ch);
curl_close($ch);

function myfunc($ch, $data){
    $bytes = strlen($data);
    // 处理 data
    return $bytes;
}
ログイン後にコピー

ただし、チャンクの場合、コールバック関数が複数回呼び出される可能性があり、毎回約 16k のデータが呼び出されます。これは明らかに私たちが望んでいることではありません。最後に「n」を付けます。コールバック関数をバッファリングできます。

function myfunc($ch, $data){
    $bytes = strlen($data);
    static $buf = '';
    $buf .= $data;
    while(1){
        $pos = strpos($buf, "\n");
        if($pos === false){
            break;
        }
        $data = substr($buf, 0, $pos+1);
        $buf = substr($buf, $pos+1);

        // 处理 data
    }
}
ログイン後にコピー

Qianaa がカスタマイズした IT 教育プラットフォーム、才能ある人材による 1 対 1 のサービス、あらゆる質問に答え、開発とプログラミングのソーシャル ヘッドライン公式ウェブサイト: www .wenaaa.com Qianaa アプリをダウンロードし、公式報酬に参加して現金 100 元を獲得してください。

QQ グループ 290551701 には、多くのインターネット エリート、テクニカル ディレクター、アーキテクト、プロジェクト マネージャーが集まっています。オープンソース テクノロジーの研究は、IT 業界で働くことに興味のある業界関係者、専門家、初心者を歓迎します。

上記は、curl を使用して HTTP チャンク データを読み取る PHP の紹介です (内容も含めて)。PHP チュートリアルに興味のある友人に役立つことを願っています。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート