cvs: phpdoc-ar /chapters streams.xml
[email protected] ("Hafid Benhadria") Fri, 25 Jul 2003 00:37:51 -0000
| Newsgroups | php.doc.ar |
|---|---|
| Message-ID | <cvshafid1059093471@cvsserver> |
hafid Thu Jul 24 20:37:51 2003 EDT
Added files:
/phpdoc-ar/chapters streams.xml
Log:
Updated to En 1.7
hafid-20030724203751.txt
(text/plain, 14.2 KB)
Index: phpdoc-ar/chapters/streams.xml +++ phpdoc-ar/chapters/streams.xml <?xml version="1.0" encoding="ISO-8859-6"?> <!-- $Revision: 1.1 $ --> <!-- Updated to En 1.7 --> <!-- Author: Wez Furlong <[email protected]> Please contact me before making any major amendments to the content of this section. Splitting/Merging are fine if they are required for php-doc restructuring purposes - just drop me a line if you make a change (so I can update my local copy). --> <chapter id="streams"> <title>èÇÌçÉ åÈÑåÌê ÇäÊ×ÈêâÇÊ ÇäÊÏáâêÉ åæ ÃÌä åÄäáê ÊèÓÙÇÊ PHP</title> <sect1 id="streams.overview"> <title>æØÑÉ ÅÌåÇäêñÉ</title> <para> ÊïåîçñðÏ èÇÌçÉ åÈÑåÌê ÇäÊ×ÈêâÇÊ ÇäÊÏáâêñÉ ÇäÎÇÕÉ È PHP äåâÇÑÈÉ åïèîÍñîÏîÉ áêåÇ êÊÙäâ ÈÇäÊÙÇåä åÙ ÇäåäáÇÊ èÇäèÕäÇÊ áê ÊèÓÙÇÊ PHP. ÈÇÓÊÙåÇä èÇÌçÉ åáÑÏÉ äåÈÑåÌê ÇäÊ×ÈêâÇÊ Êãèæ åÑáèâÉ ÈÏèÇä åâêÇÓêñÉ ÎÇÕÉ ÈÇäÙåäêÇÊ ÇäåÃäèáɬ áÅæñ èÇÌçÉ åÈÑåÌê ÇäÊ×ÈêâÇÊ ÇäÊÏáâêñÉ ÊÓåÍ äÊèÓÙÇÊã ÈèäèÌ ÇäåäáÇʬ ÇäèÕäÇÊ (sockets)¬ åÍÏÏÇÊ ÇäåèÇÑÏ ÇäåÊÔÇãäɬ ÇäÐÇãÑÉ èÇäãÇÆæÇÊ ÇäåïÙÑñîáÉ åæ ÎäÇä ÇäÓãÑêÈÊÇÊ. ÇäÊÏáâÇÊ çê ÙÈÇÑÉ Ùæ èÇÌçÉ äåÈÑåÌê ÇäÊ×ÈêâÇÊ âÇÈäÉ äÊèÓêÙ Òåæ ÊÔÚêäçÇ ÊÓåÍ ÈâêÇå ÇäèÍÏÇÊ ÇäåÙÈÃÉ ÍêèêÇ (èÇäÓãÑêÈÊÇÊ!) ÈÊÓÌêä ÊÏáâÇÊ ÌÏêÏÉ. </para> <para> Åæ ÇäåâÕÏ åæ èÇÌçÉ åÈÑåÌê ÇäÊ×ÈêâÇÊ ÇäÊÏáâêñÉ çè ÌÙä ÇäèÖÙ åÑêÍÇ ÈÇäæñÓÈÉ ääå×èÑêæ åæ ÃÌä áÊÍ ÇäåäáÇʬ åÍÏÏÇÊ ÇäåèÇÑÏ ÇäåÊÔÇãäÉ èåÕÇÏÑ ÃÎÑé ääÈêÇæÇÊ ÇäâÇÈäÉ ääÊÏáâ ÈèÇÓ×É èÇÌçÉ åèÍÏÉ äåÈÑåÌê ÇäÊ×ÈêâÇÊ ÊÊÓå ÈÓçèäÉ áçåçÇ. Êâèå èÇÌçÉ åÈÑåÌê ÇäÊ×ÈêâÇÊ ÊâÑêÈÇ Ùäé ÃÓÇÓ ÙÇÆäÉ ANSI C stdio ÇäÎÇÕÉ ÈÇäÏèÇä (ÈæáÓ ÇäÏäÇÆäêÉ åæ ÃÌä ÃÚäÈ ÇäÏèÇä ÇäçÇåÉ)¬ äÐäã áÅæñ åÈÑåÌê C ÓêÔÙÑèæ ÈÇäÃäáÉ ÊÌÇç ÇäÊÏáâÇÊ. </para> <para> ÊÙåä èÇÌçÉ åÈÑåÌê ÇäÊ×ÈêâÇÊ ÇäÊÏáâêñÉ Ùäé ÒèÌ åæ ÇäåÓÊèêÇÊ ÇäåÍÊäáÉ: Ùäé ÇäåÓÊèé ÇäâÇÙÏêñ¬ ÊïÙñîÑðá èÇÌçÉ åÈÑåÌê ÇäÊñ×ÈêâÇÊ ÇäÊñÏáâêñÉ ãÇÆæÇÊ php_stream äÊåËêä åÕÇÏÑ ÇäÈêÇæÇÊ ÇäâÇÈäÉ ääÊÏáâ. èÙäé åÓÊèé åÑÊáÙ ÈÔãä ×áêᬠÊïÙñîÑðá èÇÌçÉ åÈÑåÌê ÇäÊ×ÈêâÇÊ ãÇÆæÇÊ php_stream_wrapper ÇäÊê "ÊîäòÊîáï" Íèä èÇÌçÉ åÈÑåÌê ÇäÊ×ÈêâÇÊ åæ ÇäåÓÊèé ÇäÃÓáä ÈÚÑÖ ÇäÊÒèêÏ ÈÏÙå ÇÓÊÑÏÇÏ ÇäÈêÇæÇÊ èÈêÇæÇÊ ÇäÊÙÑêá åæ åÍÏÏÇÊ ÇäåèÇÑÏ ÇäåÊÔÇãäÉ. çæÇã åÙäåÉ <literal>ÓêÇâ</literal> ÅÖÇáêñɬ åâÈèäÉ åæ âÈä åÙØå ÏèÇä ÅæÔÇÁ ÇäÊÏáâÇʬ êÊå ÊåÑêÑçÇ Åäé ×ÑêâÉ <literal>stream_opener</literal> ÇäÚäÇáêñÉ ÈÚÑÖ ÇäÖÈ× ÇäÏâêâ äÓäèã ÇäÚðäÇá. </para> <para> Ãê ÊÏá⬠ÈåÌÑÏ áÊÍç¬ êåãæç Ãæ êÍÕä Ùäé Ãê ÙÏÏ åæ <literal>ÇäåïÑñîÔðÍîÇÊ</literal> Çäåï×îÈîâîÉ Ùäêç¬ åÇ êïÙÇäÌ ÇäÈêÇæÇÊ ÙæÏ âÑÇÁÊçÇ Åæ×äÇâÇ åæ / ãÊÇÈÊçÇ áê ÇäÊÏáâ. </para> <para> êåãæ ääÊÏáâÇÊ Ãæ ÊïÑÓîä (ÊïÍèîä) áê Ôãä ÃæèÇÙ ÃÎÑé åæ åâÇÈÖ ÇäåäáÇʬ ÍÊé êåãæ ÇÓÊÙåÇäçÇ åÙ åãÊÈÇÊ ååäèãÉ ä×Ñá åÚÇêÑ åæ Ïèæ ÙæÇÁ ãÈêÑ. êÓåÍ çÐÇ äçÐç ÇäåãÊÈÇÊ ÈèäèÌ ÇäÈêÇæÇÊ åÈÇÔÑÉ åæ åÕÇÏÑ åÍÏÏÇÊ ÇäåèÇÑÏ ÇäåÊÔÇãäÉ. ÅÐÇ ãÇæ æØÇåã êÊèáÑ Ùäé ÏÇäÉ <function>fopencookie</function> Ãè <function>funopen</function>¬ áêåãæã ÍÊé ÊåÑêÑ Ãê ÊÏáâ PHP Åäé ÃêÉ åãÊÈÉ ÊÓÊÙåä ANSI stdio! </para> <para> <note> <para> ÇäÏèÇä áê çÐÇ ÇäáÕä çê ÈÚÑÖ ÇäÅÓÊÙåÇä áê ÔêáÑÉ åÕÏÑ PHP èçê äêÓÊ ÈÏèÇä PHP. êåãæ ÅêÌÇÏ ÇäÏèÇä ÇäÊÏáâêñÉ ÇäÎÇÕÉ ÈÇäåÓÊÎÏåêæ áê <link linkend="ref.stream">åÑÌÙ ÇäÊÏáâÇÊ</link>. </para> </note> </para> </sect1> <sect1 id="streams.basics"> <title>ÃïÓïÓ ÇäÊÏáâÇÊ</title> <para> Åæ ÇÓÊÙåÇä ÇäÊÏáâÇÊ çè ÌÏ ÔÈêç ÈÇÓÊÙåÇä ÏèÇä ANSI stdio. èêÊåËä Ãçå ÇÎÊäÇá áê Çä×ÑêâÉ ÇäÊê ÊÍÕä ÈçÇ Ùäé åâÈÖ ÇäÊÏáâ ääÈÏÁ áêç. áê åÙØå ÇäÍÇäÇʬ ÓÊÓÊÙåä <function>php_stream_open_wrapper</function> åæ ÃÌä ÇäÍÕèä Ùäé åâÈÖ ÇäÊÏáâ. çÐç ÇäÏÇäÉ ÊÙåä È×ÑêâÉ ÌÏ ÔÈêç È×ÑêâÉ Ùåä fopen åËäåÇ êåãæ åäÇÍØÊç åæ ÎäÇä ÇäåËÇä ÇäÊÇäê: </para> <para> <example> <title>åËÇä Ùæ ÊÏáâ ÈÓê× êØçÑ ÇäÕáÍÉ Çäåè׿êñÉ ÇäÎÇÕÉ Èà PHP</title> <programlisting role="c"><![CDATA[ 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); } ]]></programlisting> </example> </para> <para> ÇäÌÏèä ÇäÐê áê ÇäÃÓáä êØçÑ ÇäåâÇÈäÇÊ ÇäÊÏáâêñÉ äÃãËÑ ÏèÇä ANSI stdio åÙÑèáêÉ. ÅäÇ ÊåÊ ÇäÅÔÇÑÉ Åäé ÚêÑ Ðä㬠áÅæ ÏäÇÆäêÉ ÇäÏèÇä çê ÔÈêçÉ. <table> <title>ÇäÏèÇä ÇäåâÇÈäÉ äà ANSI stdio áê èÇÌçÉ åÈÑåÌê ÇäÊ×ÈêâÇÊ ÇäÊñÏáâêñÉ</title> <tgroup cols="3"> <thead> <row> <entry>ÏÇäÉ ANSI Stdio</entry> <entry>ÏÇäÉ ÊÏáâÇÊ PHP</entry> <entry>ÊÐãêÑÇÊ</entry> </row> </thead> <tbody> <row> <entry>fopen</entry> <entry>php_stream_open_wrapper</entry> <entry>ÊÊÖåæ ÇäÊÏáâÇÊ åîÙòäîåÇÊ ÅÖÇáêñÉ</entry> </row> <row> <entry>fclose</entry> <entry>php_stream_close</entry> <entry/> </row> <row> <entry>fgets</entry> <entry>php_stream_gets</entry> <entry/> </row> <row> <entry>fread</entry> <entry>php_stream_read</entry> <entry>êïáòÊÑÖï ÒÙåÇë Ãæ åîÙòäîåîÉ nmemb ÊÊèáÑ Ùäé âêåÉ ÊÊåËä áê 1¬ äÐäã áÅæñ ÇäæñåèÐÌ ÇäÃèäêñ êÔÈç ãËêÑÇ read(2)</entry> </row> <row> <entry>fwrite</entry> <entry>php_stream_write</entry> <entry>êïáòÊÑÖï ÒÙåÇë Ãæ åîÙòäîåîÉ nmemb ÊÊèáÑ Ùäé âêåÉ ÊÊåËä áê 1¬ äÐäã áÅæñ ÇäæñåèÐÌ ÇäÃèäêñ êÔÈç ãËêÑÇ write(2)</entry> </row> <row> <entry>fseek</entry> <entry>php_stream_seek</entry> <entry/> </row> <row> <entry>ftell</entry> <entry>php_stream_tell</entry> <entry/> </row> <row> <entry>rewind</entry> <entry>php_stream_rewind</entry> <entry/> </row> <row> <entry>feof</entry> <entry>php_stream_eof</entry> <entry/> </row> <row> <entry>fgetc</entry> <entry>php_stream_getc</entry> <entry/> </row> <row> <entry>fputc</entry> <entry>php_stream_putc</entry> <entry/> </row> <row> <entry>fflush</entry> <entry>php_stream_flush</entry> <entry/> </row> <row> <entry>puts</entry> <entry>php_stream_puts</entry> <entry>æáÓ ÏäÇÆäêÉ puts¬ èêÎÊäá ÇäÃåÑ åÙ fputs</entry> </row> <row> <entry>fstat</entry> <entry>php_stream_stat</entry> <entry>ääÊÏáâÇÊ ÈæêÉ stat ÃËÑé</entry> </row> </tbody> </tgroup> </table> </para> </sect1> <sect1 id="streams.resources"> <title>ÇäÊÏáâÇÊ ãåèÇÑÏ</title> <para> ãÇáÉ ÇäÊÏáâÇÊ êÊå ÊÓÌêäçÇ Ùäé ÃæçÇ åèÇÑÏ ÙæÏ ÅÔæÇÆçÇ. êÖåæ çÐÇ ÈÃæç ÓêÊå ÊæØêáçÇ ÈÇäÔãä ÇäåæÇÓÈ ÍÊé èÅæ ÍÏËÊ ÈÖÙÉ ÃÎ×ÇÁ áÇÏÍÉ. ãÇáÉ ÏèÇä Ç俨Çå ÇäåäáÇÊêñ áê PHP ÊÙåä Ùäé ÇäåèÇÑÏ ÇäÊñÏáâêñÉ - êÙæê çÐÇ Ãæñ ÊèÓÙÇÊã ÈÅåãÇæçÇ âÈèä åÄÔÑÇÊ åäáÇÊ PHP ÇäÅÙÊêÇÏêÉ èãÃæñçÇ åîÙòäîåÇÊ èãÐÇ ÅÑÌÇÙ ÇäÊÏáâÇÊ Åæ×äÇâÇ åæ ÏèÇäçÇ. èÇÌçÉ åÈÑåÌê ÇäÊ×ÈêâÇÊ ÇäÊñÏáâêñÉ ÊÌÙä çÐç ÇäåÙÇäÌÉ ÃêÓÑ åÇ êåãæ: </para> <para> <example> <title>ãêáêÉ âÈèä ÊÏáâ åÇ Ùäé Ãæñç åîÙòäîåîÉ</title> <programlisting role="c"><![CDATA[ PHP_FUNCTION(example_write_hello) { zval *zstream; php_stream *stream; if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &zstream)) return; php_stream_from_zval(stream, &zstream); /* ÈÅåãÇæã ÇäÂæ ÇÓÊÙåÇä ÇäÊÏáâ. åÙ Ðä㬠áÅæã äÇ "Êåäã" ÇäÊÏá⬠Èä ÇäÓãÑêÈÊ êåÊäãç. êÙæê çÐÇ Ãæç êÌÈ ÃäÇ ÊÚäâ ÇäÊÏáâ äÃæç ÓêÄÏê È PHP Åäé ÇäÅæçêÇÑ! */ php_stream_write(stream, "hello\n"); RETURN_TRUE(); } ]]></programlisting> </example> </para> <para> <example> <title>ãêáêÉ ÅÑÌÇÙ ÊÏáâ åÇ Åæ×äÇâÇ åæ ÏÇäÉ</title> <programlisting role="c"><![CDATA[ PHP_FUNCTION(example_open_php_home_page) { php_stream *stream; stream = php_stream_open_wrapper("http://www.php.net", "rb", REPORT_ERRORS, NULL); php_stream_to_zval(stream, return_value); /* ÈÙÏ çÐç Çäæâ×ɬ êÕÈÍ ÇäÊÏáâ "ååäèãÇ" ääÓãÑêÈÊ. ÅÐÇ ÃÚäâÊç ÇäÂæ¬ ÓÊÄÏê Åäé ÇæçêÇÑ PHP! */ } ]]></programlisting> </example> </para> <para> æØÑÇ äãèæ ÊæØêá ÇäÊÏáâÇÊ êÊå ÊäâÇÆêǬ áÅæç êÕÈÍ åæ ÇäÅÚÑÇÁ ÇäÊáãêÑ ÈÃæç ÈÅåãÇææÇ ÇäÅáäÇÊ åÙ ãèææÇ åÈÑåÌêæ ÚêÑ åÊâæêæ èÙÏå ÇäÊÖÇêâ äÅÚäÇâ ÇäÊÏáâÇÊ ÙæÏ ææÊçê åæ ÇÓÊÙåÇäçÇ. ÈÇäÑÚå åæ Ãæ åËä çÐç ÇäåâÇÑÈÉ êåãæ Ãæ ÊÙåä ÅäÇ ÃæçÇ äêÓÊ áãÑÉ ÌêÏÉ äåÌåèÙÉ åæ ÇäÃÓÈÇÈ: ÊÍÊáØ ÇäÊÏáâÇÊ ÈÊÃåêæÇÊçÇ Ùäé åèÇÑÏ Ç俨Çå áê Íêæ Êãèæ åáÊèÍɬ èÈÐäã áÅæ ÊÑã åäá åÇ åáÊèÍÇ ÈÙÏ ÇæÊçÇÆã åæç êåãæ Ãæ êåæÙ åÙÇäÌÇÊ ÃÎÑé åæ èäèÌç. ÅÐÇ ãÇæ ÓãÑêÈÊ åÇ êÊÙÇåä åÙ ÙÏÏ èÇÓÙ åæ ÇäåäáÇʬ áÅæñ ÊÑÇãå ÇäåèÇÑÏ ÇäåÓÊÙåäɬ åæ ÍêË ÇäÐÇãÑÉ èãÐÇ åæ ÍêË ÇäÙÏÏ Çäå×äâ ääåäáÇÊ ÇäåáÊèÍɬ êåãæ Ãæ êÄÏê Åäé áÔä ×äÈêÇÊ ÇäÎÇÏå ÇäÔñïÙêñ. Ðäã ÓêÁ¬ à äêÓ ãÐäã¿ ÊÊÖåæ èÇÌçÉ åÈÑåÌê ÇäÊñ×ÈêâÇÊ ÇäÊñÏáâêñÉ ÈÙÖ ÇäÓñÍÑ êÓÇÙÏã Ùäé ÅÈâÇÁ ÔêáÑÊã æØêáÉ - ÅÐÇ äå êÊå ÅÚäÇâ ÊÏáâ åÇ åæ âÈä ÔêáÑÊã ÙæÏåÇ êäÒå Ðä㬠áÅæã ÓÊÌÏ ÈÙÖ ÇäåÙäèåÇÊ ÇäåáêÏÉ äÅÒÇäÉ ÇäÙää áê ÏêèÇæ ÃÎ×ÇÁ ÎÇÏåã ÇäÔñïÙêñ. </para> <note> <simpara> ÏÇÆåÇ ÅÓÊÙåä ÊÔêêÏÇ åÒêäÇ äÙää PHP ÙæÏ Ê×èêÑ ÊèÓÙÉ (<option>--enable-debug</option> ÙæÏ ÊÔÚêä ÇäÊçêÆÉ) ÈÇÙÊÈÇÑ Ãæ ÌçÏÇ ãÈêÑÇ âÏ Êå ÈÐäç åæ ÃÌä ÊÍÐêÑã ÈÎÕèÕ ÊÓÑñïÈÇÊ ÇäÐÇãÑÉ èÇäÊÏáâÇÊ. </simpara> </note> <para> áê ÈÙÖ ÇäÍÇäÇʬ êãèæ åáêÏÇ ÅÈâÇÁ ÊÏáâ åÇ åáÊèÍÇ Ùäé ÇåÊÏÇÏ Çä×äÈêɬ äêâèå Ðä㬠Ùäé ÓÈêä ÇäåËÇä¬ åâÇå ÏêèÇæ Ãè åäá ÊÊÈÙ. Åæ ãÊÇÈÉ ÇäÔêáÑÉ ÇääÇÒåÉ äÊæØêá åËä çÐÇ ÇäÊÏáâ ÈÃåÇæ äêÓ ÈÇäÕÙÈ äãæ çÐç çê ÙÈÇÑÉ Ùæ Ó×èÑ ÙÏêÏÉ åæ ÇäÔêáÑÉ äÇ êïÍòÊîÇÌï ÅäêçÇ â×ÙÇ. äÊâê æáÓã åæ ÙæÇÁ ãÊÇÈÉ ÇäÔêáÑɬ êåãæã èÖÙ ÙäÇåÉ Ùäé ÊÏáâ åÇ äæÙÊç ÈÃæç âÇÈä ääÊæØêá ÇäÊñäâÇÆêñ. åÇ êÙæêç çÐÇ Ãæ èÇÌçÉ åÈÑåÌê ÇäÊ×ÈêâÇÊ ÇäÊñÏáâêñÉ äæ ÊïÕòÏðÑî ÊÍÐêÑÇ ÙæÏåÇ êÍêæ èâÊ ÇäÊæØêá ÇäÊäâÇÆê äÊÏáâ åÇ. åæ ÃÌä ÇäâêÇå ÈçÐǬ êåãæã ÇÓÊÙåÇä <function>php_stream_auto_cleanup</function>. </para> </sect1> &chapters.streams.common; &chapters.streams.dir; &chapters.streams.file; &chapters.streams.socket; &chapters.streams.structs; &chapters.streams.constants; </chapter> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 -->