public BinaryStream fopen(Env env, StringValue pathV, StringValue mode, LongValue options) { string path = pathV.ToString(); if (path.equals("php://output")) { return(new PhpBinaryOutput(env)); } else if (path.equals("php://input")) { return(new PhpBinaryInput(env)); } else if (path.equals("php://stdout")) { return(new PhpStdout()); } else if (path.equals("php://stderr")) { return(new PhpStderr()); } else if (path.equals("php://stdin")) { return(new PhpStdin(env)); } else if (path.equals("php://memory")) { return(new ByteArrayBinaryStream(env)); } else if (path.equals("php://temp")) { return(FileModule.tmpfile(env)); } else { env.warning(L.l("{0} @is an unsupported or unknown path for this protocol", path)); return(null); } }