我的本意是希望加载控制器文件能更加高效,毕竟读内存要比读磁盘快的多。
我查了一下 include 可能支持 php://memory 这样的协议,但手册上并没有说过这该怎么用,而且我也没google到。
我瞎蒙试着用 php://memory/test 和 php://memory:test ,但都是错的

解决方案 »

  1.   

    你的需求eAccelerator之类的不是更好?内存中是很快,我试过memcache里,加载20个文件,eval,平均总耗时比磁盘读取快有个读取的例子$fp = fopen("php://memory", 'r+');
    fputs($fp, "hello world!\n");
    rewind($fp);
    while(!feof($fp))
    {
    echo fread($fp, 1024);
    }
    fclose($fp);
      

  2.   

    这样试试$fp = fopen('php://memory','r+');
    fputs($fp, 'abcd');
    rewind($fp);
    echo fgets($fp);
      

  3.   

    include "php://memory"; 没有反应也没报错。而且我发现用 file_get_contents("php://memory")也一样什么都读不出来又不报任何错误。这是为什么?
    最后想到了折衷的办法,先转化为 data:text/plain;base64,base64_encode($fromMemory) 格式,再include
      

  4.   

    不太清楚你打算做什么
    如果是嫌 include 太多,完全可以动态生成一个单一的紧凑版本供运行时使用