对PHP输入输出流进修和熟悉

    添加时间:2013-6-28 点击量:

    PHP输入和输出流是经由过程php://来接见的,它容许接见 PHP 的输入输出流、标准输入输出和错误描述符, 内存中、磁盘备份的姑且文件流以及可以操纵其他读取写入文件资料的过滤器。


    php://stdin, php://stdout 和 php://stderr


    php://stdin,php://stdout 和 php://stderr容许接见 PHP 过程响应的输入或者输出流。


    php://input


    php://input 是个可以接见恳求的原始数据的只读流。 POST 恳求的景象下,好应用 php://input 来庖代 ¥HTTP_RAW_POST_DATA(原生的post数据),因为它不依附于特定的 php.ini 指令,内存消费更少。如下例:




    1. <formaction=method=post>

    2. <inputtype=textname=test><inputtype=submitname=/>

    3. </form>

    4. <?php

    5. echo file_get_contentsphp://input);

    6. ?>




    成果:



    php://output


    php://output 是一个只写的数据流, 容许你以 print 和 echo 一样的体式格式 写入到输出缓冲区。


    php://fd


    php://fd 容许直接接见指定的文件描述符。 例如 php://fd/3 引用了文件描述符 3。


    php://memory 和 php://temp


    php://memory 和 php://temp 是一个类似文件 包装器的数据流,容许读写姑且数据。 两者的独一差别是 php://memory 老是把数据储存在内存中, 而 php://temp 会在内存量达到预定义的限制后(默认是 2MB)存入姑且文件中。 姑且文件地位的决意和 sys_get_temp_dir() 的体式格式一致。


    php://filter


    php://filter 是一种元封装器, 设计用于数据流打开时的筛选过滤应用。 这对于一体式(all-in-one)的文件函数很是有效,类似 readfile()、 file() 和 file_get_contents(), 在数据流内容读取之前没有机会应用其他过滤器。参数如下:



    如下例:




    1. <?php

    2. / 这会以大写字母输出 www.phpddt.com 的全部内容 /

    3. readfilephp://filter/read=string.toupper/resource=http://www.phpddt.com);

    4. ?>



    我所有的自负皆来自我的自卑,所有的英雄气概都来自于我的软弱。嘴里振振有词是因为心里满是怀疑,深情是因为痛恨自己无情。这世界没有一件事情是虚空而生的,站在光里,背后就会有阴影,这深夜里一片寂静,是因为你还没有听见声音。—— 马良《坦白书》
    分享到: