PHP | realpath_cache_get 函数
Lasted 2021-01-19 18:46:26
realpath_cache_get 函数获取真实目录缓存的详情。
函数定义
realpath_cache_get ( ) : array
// 源文件位于:ext/standard/filestat.c
# 函数定义
PHP_FUNCTION(realpath_cache_get)
{
realpath_cache_bucket **buckets = realpath_cache_get_buckets(), **end = buckets + realpath_cache_max_buckets();
ZEND_PARSE_PARAMETERS_NONE();
array_init(return_value);
while(buckets < end) {
realpath_cache_bucket *bucket = *buckets;
while(bucket) {
zval entry;
array_init(&entry);
/* bucket->key is unsigned long */
if (ZEND_LONG_MAX >= bucket->key) {
add_assoc_long_ex(&entry, "key", sizeof("key") - 1, bucket->key);
} else {
add_assoc_double_ex(&entry, "key", sizeof("key") - 1, (double)bucket->key);
}
add_assoc_bool_ex(&entry, "is_dir", sizeof("is_dir") - 1, bucket->is_dir);
add_assoc_stringl_ex(&entry, "realpath", sizeof("realpath") - 1, bucket->realpath, bucket->realpath_len);
add_assoc_long_ex(&entry, "expires", sizeof("expires") - 1, bucket->expires);
#ifdef PHP_WIN32
add_assoc_bool_ex(&entry, "is_rvalid", sizeof("is_rvalid") - 1, bucket->is_rvalid);
add_assoc_bool_ex(&entry, "is_wvalid", sizeof("is_wvalid") - 1, bucket->is_wvalid);
add_assoc_bool_ex(&entry, "is_readable", sizeof("is_readable") - 1, bucket->is_readable);
add_assoc_bool_ex(&entry, "is_writable", sizeof("is_writable") - 1, bucket->is_writable);
#endif
zend_hash_str_update(Z_ARRVAL_P(return_value), bucket->path, bucket->path_len, &entry);
bucket = bucket->next;
}
buckets++;
}
}
参数
- checkNone - 无。
返回值
- checkint - 返回真实路径缓存详情的数组。
示例1: - 使用 realpath_cache_get() 函数获取真实目录缓存的详情。
<?php
/**
* PHP realpath_cache_get() 函数获取真实目录缓存的详情。
*
* @since Version 1.0.0
* @filesource
*/
// 获取缓存目录信息
$info = realpath_cache_get();
print_r($info);
Array ( [/data/docs/t.php] => Array ( [key] => 1.7397249540873E+19 [is_dir] => [realpath] => /data/docs/t.php [expires] => 1611051296 ) ... )