PHP マニュアル
前のページ | 第 44章PHP拡張モジュールの作者用のストリームAPI | 次のページ

# ストリームの基本

ストリームの使用方法は、ANSI stdio関数の使用と非常に似ています。 主な違いは、使用を開始するストリームを得る方法です。 多くの場合、ストリームのハンドルを得るために php_stream_open_wrapper()を使用します。 この関数の動作は、以下の例で示すようにfopenと非常によくにています。

例 44-1. PHPホームページを表示するための簡単なストリームの例
    php_stream * stream = php_stream_open_wrapper("http://www.php.net", "rb", REPORT_ERRORS, NULL);
    if (stream) {
        while(!php_stream_eof(stream)) {
            char buf[1024];

            if (php_stream_gets(stream, buf, sizeof(buf))) {
                printf(buf);
            } else {
                break;
            }
        }
        php_stream_close(stream);
    }

以下の表にその他の一般的なANSI stdio関数と等価なストリーム関数を 示します。注記で除外されていない限り、関数の意味は同じです。

表 44-1. ANSI stdioと等価なストリームAPI関数

ANSI stdio関数 | PHP ストリーム関数 | 注意
--- | --- | ---
fopen | php_stream_open_wrapper | ストリームではパラメータが増えています
fclose | php_stream_close |
fgets | php_stream_gets |
fread | php_stream_read | パラメータnmembの値を1と仮定すると、プロトタイプはread(2)により似ることになります
fwrite | php_stream_write | パラメータnmembの値を1と仮定すると、プロトタイプはwrite(2)により似ることになります
fseek | php_stream_seek |
ftell | php_stream_tell |
rewind | php_stream_rewind |
feof | php_stream_eof |
fgetc | php_stream_getc |
fputc | php_stream_putc |
fflush | php_stream_flush |
puts | php_stream_puts | fputsではなく、putsと同じ意味
fstat | php_stream_stat | ストリームはより情報の多いstat構造体を有しています

前のページ | ホーム | 次のページ
PHP拡張モジュールの作者用のストリームAPI | 上に戻る | リソースとしてのストリーム