optionsmodule.java

来自「RESIN 3.2 最新源码」· Java 代码 · 共 979 行 · 第 1/2 页

JAVA
979
字号
      return LongValue.create(Runtime.getRuntime().maxMemory());  }  /**   * Stub value for memory get usage.   */  public static Value memory_get_usage(Env env, @Optional boolean real)  {    if (com.caucho.util.Alarm.isTest())      return LongValue.create(0);    else      return LongValue.create(Runtime.getRuntime().maxMemory());  }  // XXX: php_ini_loaded_file  // XXX: php_ini_scanned_files  // XXX: php_logo_guid  // XXX: phpcredits  /**   * Returns the sapi type.   */  public static String php_sapi_name()  {    return "apache";  }  /**   * Returns system information   */  public static String php_uname(@Optional("'a'") String mode)  {    // XXX: stubbed    if (mode == null || mode.equals(""))      mode = "a";    switch (mode.charAt(0)) {    case 's':      return PHP_OS;    case 'n':      return "localhost";    case 'r':      return "2.4.0";    case 'v':      return "Version 2.4.0";    case 'm':      return "i386";    case 'a':    default:      return (php_uname("s") + " " +              php_uname("n") + " " +              php_uname("r") + " " +              php_uname("v") + " " +              php_uname("m"));    }  }  public static void phpinfo(Env env, @Optional("-1") int what)  {    if (hasRequest(env))      env.println("<html><body>");        if ((what & INFO_GENERAL) != 0)      phpinfoGeneral(env);    if ((what & INFO_VARIABLES) != 0)      phpinfoVariables(env);        if (hasRequest(env))      env.println("</body></html>");  }  private static void phpinfoGeneral(Env env)  {    if (hasRequest(env))      env.println("<h1>Quercus</h1>");    else      env.println("Quercus");    if (hasRequest(env)) {      env.println("<pre>");    }    env.println("PHP Version => " + phpversion(env, env.createString("std")));    env.println("System => " + System.getProperty("os.name") + " "	      + System.getProperty("os.version") + " "	      + System.getProperty("os.arch"));    env.println("Build Date => " + env.getQuercus().getVersionDate());    env.println("Configure Command => n/a");    env.println("Server API => CGI");    env.println("Virtual Directory Support => disabled");    env.println("Configuration File (php.ini) Path => WEB-INF/php.ini");    env.println("PHP API => 20031224");    env.println("PHP Extension => 20041030");    env.println("Debug Build => no");    env.println("Thread Safety => enabled");    env.println("Registered PHP Streams => php, file, http, https");        if (hasRequest(env)) {      env.print("</pre>");    }  }    private static void phpinfoVariables(Env env)  {    if (hasRequest(env)) {      env.println("<h2>PHP Variables</h2>");      env.println("<table>");      env.println("<tr><th>Variable</th><th>Value</th></tr>");    }    else {      env.println("Variable => Value");    }        if (hasRequest(env)) {      phpinfoVariable(env, "_REQUEST", env.getSpecialRef("_REQUEST"));      phpinfoVariable(env, "_GET", env.getSpecialRef("_GET"));      phpinfoVariable(env, "_POST", env.getSpecialRef("_POST"));    }    phpinfoVariable(env, "_SERVER", env.getSpecialRef("_SERVER"));        if (hasRequest(env))      env.print("</table>");        env.println();  }    private static void phpinfoVariable(Env env, String name, Value value)  {    if (value.isArray()) {      ArrayValue array = value.toArrayValue(env);            for (Map.Entry<Value,Value> entry : array.entrySet()) {        Value key = escape(env, entry.getKey());                if (hasRequest(env))          env.print("<tr><td>");                env.print(name + "[\"" + key + "\"]");                if (hasRequest(env))          env.println("</td><td>");        else          env.print(" => ");                phpinfoVariable(env, entry.getValue());                if (hasRequest(env))          env.println("</td></tr>");      }    }    else {      if (hasRequest(env))        env.println("<tr><td>" + name + "</td><td>");            phpinfoVariable(env, value);            if (hasRequest(env))        env.println("</td></tr>");    }  }    private static void phpinfoVariable(Env env, Value value)  {    if (value.isString()) {      env.println(escape(env, value).toString());    }    else {      if (hasRequest(env))        env.print("<pre>");            VariableModule.var_dump(env, escape(env, value), null);            if (hasRequest(env))        env.print("</pre>");    }  }  /**   * Returns the quercus version.   */  public static StringValue phpversion(Env env, @Optional StringValue module)  {    return env.createString(env.getQuercus().getPhpVersion());  }  /**   * Sets an environment name/value pair.   */  public static boolean putenv(Env env, StringValue settings)  {    int eqIndex = settings.indexOf('=');    if (eqIndex < 0)      return false;    StringValue key = settings.substring(0, eqIndex);    StringValue val = settings.substring(eqIndex + 1);    env.getQuercus().setServerEnv(key, val);    return true;  }  /**   * Sets the include path   */  public static Value restore_include_path(Env env)  {    env.restoreIncludePath();    return NullValue.NULL;  }  /**   * Sets the include path   */  public static String set_include_path(Env env, String includePath)  {    return env.setIncludePath(includePath);  }    /**   * Sets the magic quotes value.   */  public static Value set_magic_quotes_runtime(Env env, Value value)  {    return BooleanValue.FALSE; // PHP 6 removes magic_quotes  }  /**   * Sets the time limit and resets the timeout.   */  public static Value set_time_limit(Env env, long seconds)  {    env.resetTimeout();        env.setTimeLimit(seconds * 1000L);    return NullValue.NULL;  }    /*   * Returns the directory used for temp files like uploads.   */  public static String sys_get_temp_dir(Env env)  {    Path tmp = env.getTempDirectory();        return tmp.getNativePath() + Path.getFileSeparatorChar();  }  /**   * Compares versions   */  public static Value version_compare(Env env,                                      StringValue version1,                                      StringValue version2,                                      @Optional("cmp") String op)  {    ArrayList<Value> expanded1 = expandVersion(env, version1);    ArrayList<Value> expanded2 = expandVersion(env, version2);    int cmp = compareTo(expanded1, expanded2);    if ("eq".equals(op) || "==".equals(op) || "=".equals(op))      return cmp == 0 ? BooleanValue.TRUE : BooleanValue.FALSE;    else if ("ne".equals(op) || "!=".equals(op) || "<>".equals(op))      return cmp != 0 ? BooleanValue.TRUE : BooleanValue.FALSE;    else if ("lt".equals(op) || "<".equals(op))      return cmp < 0 ? BooleanValue.TRUE : BooleanValue.FALSE;    else if ("le".equals(op) || "<=".equals(op))      return cmp <= 0 ? BooleanValue.TRUE : BooleanValue.FALSE;    else if ("gt".equals(op) || ">".equals(op))      return cmp > 0 ? BooleanValue.TRUE : BooleanValue.FALSE;    else if ("ge".equals(op) || ">=".equals(op))      return cmp >= 0 ? BooleanValue.TRUE : BooleanValue.FALSE;    else {      if (cmp == 0)        return new LongValue(0);      else if (cmp < 0)        return new LongValue(-1);      else        return new LongValue(1);    }  }  // XXX: zend_logo_guid  // XXX: zend_thread_id  public static String zend_version()  {    return "2.0.4";  }  private static ArrayList<Value> expandVersion(Env env, StringValue version)  {    ArrayList<Value> expand = new ArrayList<Value>();    int len = version.length();    int i = 0;    while (i < len) {      char ch = version.charAt(i);      if ('0' <= ch && ch <= '9') {        int value = 0;        for (; i < len && '0' <= (ch = version.charAt(i)) && ch <= '9'; i++) {          value = 10 * value + ch - '0';        }        expand.add(new LongValue(value));      }      else if (Character.isLetter((char) ch)) {        StringBuilder sb = new StringBuilder();        for (; i < len && Character.isLetter(version.charAt(i)); i++) {          sb.append((char) ch);        }        String s = sb.toString();        if (s.equals("dev"))          s = "a";        else if (s.equals("alpha") || s.equals("a"))          s = "b";        else if (s.equals("beta") || s.equals("b"))          s = "c";        else if (s.equals("RC"))          s = "d";        else if (s.equals("pl"))          s = "e";        else          s = "z" + s;        expand.add(env.createString(s));      }      else        i++;    }    return expand;  }    private static boolean hasRequest(Env env)  {    return env.getRequest() != null;  }    private static Value escape(Env env, Value value)  {    if (value.isArray()) {      ArrayValue array = value.toArrayValue(env);            ArrayValue result = new ArrayValueImpl();            for (Map.Entry<Value,Value> entry : array.entrySet()) {        Value key = escape(env, entry.getKey());        Value val = escape(env, entry.getValue());                result.put(key, val);      }            return result;    }    else if (value.isObject()) {      ObjectValue obj = (ObjectValue)value.toObject(env);            ObjectValue result = new ObjectExtValue(obj.getQuercusClass());            for (Map.Entry<Value,Value> entry : obj.entrySet()) {        Value key = escape(env, entry.getKey());        Value val = escape(env, entry.getValue());                result.putField(env, key.toString(), val);      }            return result;    }    else {      return HtmlModule.htmlspecialchars(env,                                         value.toStringValue(),                                         HtmlModule.ENT_COMPAT,                                         null);    }  }  private static int compareTo(ArrayList<Value> a, ArrayList<Value> b)  {    int i = 0;    while (true) {      if (a.size() <= i && b.size() <= i)        return 0;      else if (a.size() <= i)        return -1;      else if (b.size() <= i)        return 1;      int cmp = compareTo(a.get(i), b.get(i));      if (cmp != 0)        return cmp;      i++;    }  }  private static int compareTo(Value a, Value b)  {    if (a.equals(b))      return 0;    else if (a.isLongConvertible() && ! b.isLongConvertible())      return -1;    else if (b.isLongConvertible() && ! a.isLongConvertible())      return 1;    else if (a.lt(b))      return -1;    else      return 1;  }  static final IniDefinition INI_ASSERT_ACTIVE    = _iniDefinitions.add("assert.active", true, PHP_INI_ALL);  static final IniDefinition INI_ASSERT_BAIL    = _iniDefinitions.add("assert.bail", false, PHP_INI_ALL);  static final IniDefinition INI_ASSERT_WARNING    = _iniDefinitions.add("assert.warning", true, PHP_INI_ALL);  static final IniDefinition INI_ASSERT_CALLBACK    = _iniDefinitions.add("assert.callback", null, PHP_INI_ALL);  static final IniDefinition INI_ASSERT_QUIET_EVAL    = _iniDefinitions.add("assert.quiet_eval", false, PHP_INI_ALL);  static final IniDefinition INI_ENABLE_DL    = _iniDefinitions.add("enable_dl", true, PHP_INI_SYSTEM);  static final IniDefinition INI_MAX_EXECUTION_TIME    = _iniDefinitions.add("max_execution_time", "600", PHP_INI_ALL);  static final IniDefinition INI_MAX_INPUT_TIME    = _iniDefinitions.add("max_input_time", "-1", PHP_INI_PERDIR);  static final IniDefinition INI_MAGIC_QUOTES_GPC    = _iniDefinitions.add("magic_quotes_gpc", false, PHP_INI_PERDIR);  static final IniDefinition INI_TRACK_VARS    = _iniDefinitions.add("track_vars", "On", PHP_INI_ALL);  static final IniDefinition INI_ARG_SEPARATOR_OUTPUT    = _iniDefinitions.add("arg_separator.output", "&", PHP_INI_ALL);  static final IniDefinition INI_ARG_SEPARATOR_INPUT    = _iniDefinitions.add("arg_separator.input", "&", PHP_INI_ALL);  static final IniDefinition INI_VARIABLES_ORDER    = _iniDefinitions.add("variables_order", "EGPCS", PHP_INI_ALL);  static final IniDefinition INI_AUTO_GLOBALS_JIT    = _iniDefinitions.add("auto_globals_jit", "1", PHP_INI_ALL);  static final IniDefinition INI_REGISTER_ARGC_ARGV    = _iniDefinitions.add("register_argc_argv", true, PHP_INI_ALL);  static final IniDefinition INI_POST_MAX_SIZE    = _iniDefinitions.add("post_max_size", "8M", PHP_INI_ALL);  static final IniDefinition INI_GPC_ORDER    = _iniDefinitions.add("gpc_order", "GPC", PHP_INI_ALL);  static final IniDefinition INI_AUTO_PREPEND_FILE    = _iniDefinitions.add("auto_prepend_file", null, PHP_INI_ALL);  static final IniDefinition INI_AUTO_APPEND_FILE    = _iniDefinitions.add("auto_append_file", null, PHP_INI_ALL);  static final IniDefinition INI_DEFAULT_MIMETYPE    = _iniDefinitions.add("default_mimetype", "text/html", PHP_INI_ALL);  static final IniDefinition INI_DEFAULT_CHARSET    = _iniDefinitions.add("default_charset", "", PHP_INI_ALL);  static final IniDefinition INI_ALWAYS_POPULATE_RAW_POST_DATA =    _iniDefinitions.add("always_populate_raw_post_data", false, PHP_INI_ALL);  static final IniDefinition INI_ALLOW_WEBDAV_METHODS    = _iniDefinitions.add("allow_webdav_methods", false, PHP_INI_ALL);  static final IniDefinition INI_MEMORY_LIMIT    = _iniDefinitions.add("memory_limit", "512M", PHP_INI_ALL);  // unsupported  static final IniDefinition MAGIC_QUOTES_RUNTIME    = _iniDefinitions.addUnsupported("magic_quotes_runtime", false, PHP_INI_ALL);  static final IniDefinition MAGIC_QUOTES_SYBASE    = _iniDefinitions.addUnsupported("magic_quotes_sybase", false, PHP_INI_ALL);  static final IniDefinition INI_REGISTER_GLOBALS    = _iniDefinitions.addUnsupported("register_globals", false, PHP_INI_ALL);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?