PHP 扩展 - dirname

2016-07-06  本文已影响37人  Bun_Wong

AZALEA 项目中我需要获取 $_SERVER['SCRIPT_NAME']dirname,Zend 提供了 zend_dirname 方法来修改传入的字符串

zval *server, *field;
zstring *baseUri = NULL;

server = zend_hash_str_find(&EG(symbol_table), "_SERVER", sizeof("_SERVER") - 1);
if (Z_TYPE_P(server) == IS_ARRAY) {
    if ((field = zend_hash_str_find(Z_ARRVAL_P(server), AZALEA_STRING("SCRIPT_NAME"))) &&
            Z_TYPE_P(field) == IS_STRING) {
        // 获取到了 $_SERVER['SCRIPT_NAME']
        baseUri = zend_string_dup(Z_STR_P(field), 0);
        // dirname 修改 baseUri
        ZSTR_LEN(baseUri) = zend_dirname(ZSTR_VAL(baseUri), ZSTR_LEN(baseUri));
    }
}
if (!baseUri) {
    baseUri = zend_string_init("/", sizeof("/") - 1, 0);  // 默认
}

zend_string_release(baseUri);  // 最后不要忘记了释放
上一篇下一篇

猜你喜欢

热点阅读