美文网首页PHPPHP实战
PHP 扩展 - filestat

PHP 扩展 - filestat

作者: Bun_Wong | 来源:发表于2016-07-07 19:38 被阅读51次

filestat 可以返回一系列系统的文件状态,如是否存在,文件或者目录,是否可读写等。

// 引入头文件
#include "ext/standard/php_filestat.h"

// 假设我们要检查的文件为 /tmp/foo.txt
zend_string *filename = zend_string_init("/tmp/foo.txt", sizeof("/tmp/foo.txt") - 1, 0);

int funcnum = FS_IS_DIR;  // 这里描述检查类型,FS_IS_DIR 是检查是否为文件夹,与 is_dir() PHP 方法相同
zval ret;  // FS_IS_DIR 返回的结果其实为一个布尔类型的 zval
php_stat(ZSTR_VAL(filename), (php_stat_len) ZSTR_LEN(filename), funcnum, &ret);

if (Z_TYPE(ret) == IS_TRUE) {
    // 目录
} else {
    // 不是目录
}

以下是 funcnum 宏值和 PHP 方法的对照,来自 php_filestat.h 的定义

#define FS_PERMS    0  // int fileperms(string filename)
#define FS_INODE    1  // int fileinode(string filename)
#define FS_SIZE     2  // int filesize(string filename)
#define FS_OWNER    3  // int fileowner(string filename)
#define FS_GROUP    4  // int filegroup(string filename)
#define FS_ATIME    5  // int fileatime(string filename)
#define FS_MTIME    6  // int filemtime(string filename)
#define FS_CTIME    7  // int filectime(string filename)
#define FS_TYPE     8  // string filetype(string filename)
#define FS_IS_W     9  // bool is_writable(string filename)
#define FS_IS_R    10  // bool is_readable(string filename)
#define FS_IS_X    11  // bool is_executable(string filename)
#define FS_IS_FILE 12  // bool is_file(string filename)
#define FS_IS_DIR  13  // bool is_dir(string filename)
#define FS_IS_LINK 14  // bool is_link(string filename)
#define FS_EXISTS  15  // bool file_exists(string filename)
#define FS_LSTAT   16  // array lstat(string filename)
#define FS_STAT    17  // array stat(string filename)

相关文章

  • PHP 扩展 - filestat

    filestat 可以返回一系列系统的文件状态,如是否存在,文件或者目录,是否可读写等。 以下是 funcnum ...

  • Laravel 创建流程

    1. 安装 laravel php依赖 PHP PDO 扩展 PHP Mbstring 扩展 PHP Tokeni...

  • MySQLi扩展了解

    什么是PHP的MySQLi扩展? PHP的MySQLi扩展又被称为MySQL增强扩展,mysqli扩展在PHP 5...

  • PHP 扩展与 ZEND 引擎的整合

    PHP 扩展是对 PHP 功能的一个补充,编写完 PHP 扩展以后, ZEND 引擎需要获取到 PHP 扩展的信息...

  • PHP扩展(extensions)

    什么是PHP扩展? 为PHP提供一些扩展的功能 常见的PHP扩展 mysql-----提供给PHP操作MySQL数...

  • PHP 常用扩展模块

    php 扩展主要分为两类: php模块扩展和zend模块扩展。 php模块扩展 bz2 用于透明地读写 bzip...

  • Centos下php找不到pdo_mysql

    安装完php后需要安装php的扩展比如: 安装php的扩展yum install php-mysql php-gd...

  • PHP扩展模块安装

    PHP扩展模块安装 PHP扩展模块安装 扩展apache rewrite教程 http://coffeelet.b...

  • 编译fileinfo扩展

    进入PHP源码目录 执行PHP扩展编译预处理指令 编译PHP扩展 找到PHP.INI文件,修改extension_...

  • mysql,mysqli,PDO介绍

    PHP与MySQL的连接有三种API接口,分别是:PHP的MySQL扩展 、PHP的mysqli扩展 、PHP数据...

网友评论

    本文标题:PHP 扩展 - filestat

    本文链接:https://www.haomeiwen.com/subject/qluljttx.html