Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > media > main > by-pkgid > 0afeee9cca140e167a996902b9a677c5 > files > 3176

php-manual-en-4.3.0-2mdk.noarch.rpm

<HTML
><HEAD
><TITLE
>Streams Basics</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="PHP Manual"
HREF="index.html"><LINK
REL="UP"
TITLE="Streams API for PHP Extension Authors"
HREF="streams.html"><LINK
REL="PREVIOUS"
TITLE="Streams API for PHP Extension Authors"
HREF="streams.html"><LINK
REL="NEXT"
TITLE="Streams as Resources"
HREF="streams.resources.html"><META
HTTP-EQUIV="Content-type"
CONTENT="text/html; charset=ISO-8859-1"></HEAD
><BODY
CLASS="sect1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>PHP Manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="streams.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 43. Streams API for PHP Extension Authors</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="streams.resources.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="streams.basics"
></A
>Streams Basics</H1
><P
>&#13;   Using streams is very much like using ANSI stdio functions.  The main
   difference is in how you obtain the stream handle to begin with.
   In most cases, you will use <B
CLASS="function"
>php_stream_open_wrapper()</B
>
   to obtain the stream handle.  This function works very much like fopen,
   as can be seen from the example below:
  </P
><P
>&#13;     <TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
CLASS="EXAMPLE"
><TR
><TD
><DIV
CLASS="example"
><A
NAME="AEN101772"
></A
><P
><B
>Example 43-1. simple stream example that displays the PHP home page</B
></P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><PRE
CLASS="c"
>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);
}</PRE
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
>
  </P
><P
>&#13;   The table below shows the Streams equivalents of the more common ANSI stdio functions.
   Unless noted otherwise, the semantics of the functions are identical.
     <DIV
CLASS="table"
><A
NAME="AEN101776"
></A
><P
><B
>Table 43-1. ANSI stdio equivalent functions in the Streams API</B
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><THEAD
><TR
><TH
ALIGN="LEFT"
VALIGN="MIDDLE"
>ANSI Stdio Function</TH
><TH
ALIGN="LEFT"
VALIGN="MIDDLE"
>PHP Streams Function</TH
><TH
ALIGN="LEFT"
VALIGN="MIDDLE"
>Notes</TH
></TR
></THEAD
><TBODY
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>fopen</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>php_stream_open_wrapper</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Streams includes additional parameters</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>fclose</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>php_stream_close</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&nbsp;</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>fgets</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>php_stream_gets</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&nbsp;</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>fread</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>php_stream_read</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>The nmemb parameter is assumed to have a value of 1, so the prototype looks more like read(2)</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>fwrite</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>php_stream_write</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>The nmemb parameter is assumed to have a value of 1, so the prototype looks more like write(2)</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>fseek</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>php_stream_seek</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&nbsp;</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>ftell</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>php_stream_tell</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&nbsp;</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>rewind</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>php_stream_rewind</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&nbsp;</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>feof</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>php_stream_eof</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&nbsp;</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>fgetc</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>php_stream_getc</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&nbsp;</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>fputc</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>php_stream_putc</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&nbsp;</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>fflush</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>php_stream_flush</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>&nbsp;</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>puts</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>php_stream_puts</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Same semantics as puts, NOT fputs</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>fstat</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>php_stream_stat</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>Streams has a richer stat structure</TD
></TR
></TBODY
></TABLE
></DIV
>
   
  </P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="streams.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="streams.resources.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Streams API for PHP Extension Authors</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="streams.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Streams as Resources</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>