ストリームã®åŸºæœ¬
ストリームã®ä½¿ç”¨æ–¹æ³•ã¯ã€ANSI stdio関数ã®ä½¿ç”¨ã¨éžå¸¸ã«ä¼¼ã¦ã„ã¾ã™ã€‚
主ãªé•ã„ã¯ã€ä½¿ç”¨ã‚’é–‹å§‹ã™ã‚‹ã‚¹ãƒˆãƒªãƒ¼ãƒ を得る方法ã§ã™ã€‚
多ãã®å ´åˆã€ã‚¹ãƒˆãƒªãƒ¼ãƒ ã®ãƒãƒ³ãƒ‰ãƒ«ã‚’å¾—ã‚‹ãŸã‚ã«
php_stream_open_wrapper()を使用ã—ã¾ã™ã€‚
ã“ã®é–¢æ•°ã®å‹•作ã¯ã€ä»¥ä¸‹ã®ä¾‹ã§ç¤ºã™ã‚ˆã†ã«fopenã¨éžå¸¸ã«ã‚ˆãã«ã¦ã„ã¾ã™ã€‚
例 43-1PHPホームページを表示ã™ã‚‹ãŸã‚ã®ç°¡å˜ãªã‚¹ãƒˆãƒªãƒ¼ãƒ ã®ä¾‹ 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関数ã¨ç‰ä¾¡ãªã‚¹ãƒˆãƒªãƒ¼ãƒ 関数を
示ã—ã¾ã™ã€‚注記ã§é™¤å¤–ã•れã¦ã„ãªã„é™ã‚Šã€é–¢æ•°ã®æ„味ã¯åŒã˜ã§ã™ã€‚
表 43-1ANSI 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æ§‹é€ ä½“ã‚’æœ‰ã—ã¦ã„ã¾ã™ |