c - 使用 zend 读取 php.ini for PHP 扩展(不是 PHP 语言)

标签 c windows php php-extension php-internals

我正在尝试使用 zend 从 php.ini 读取一些设置。我使用的 API 是

long zend_ini_long(char *name, uint name_length, int orig)

但它总是返回 0。我仔细检查了名称并确保我在 php.ini 中指定的值大于 0。我是否遗漏了什么?

最佳答案

 long maxwait = zend_ini_long("max_execution_time",
     sizeof("max_execution_time"), 0);

问题是 ZEND_STRL 没有返回适合此 API 预期使用方式的正确长度,所以不要使用它。

我应该补充一点,大多数由 PHP 内部维护的哈希表假设 NUL 终止符包含在被哈希的字符串的长度中(它是整体二进制安全概念的一部分),这就是我们使用 sizeof( ) 而不是 strlen() 或 sizeof()-1。

关于c - 使用 zend 读取 php.ini for PHP 扩展(不是 PHP 语言),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1288525/

相关文章:

c - 设置创建多少个信号量?

windows - 为什么对话框会在不刷新的情况下删除其内容?

c++ - 在 win7(64) 上使用 vs2013(64) 编译 zlib 出现错误

php - AJAX 返回 null XML

php - mysql_fetch_array无法获取类别id信息

客户端通过套接字与许多服务器连接

c - 错误 : assignment of member ai_family in read-only object

c - 尝试将文本文件数据读取到结构数组中?

windows - FFMPEG -F 连接视频、音频同步问题

php - 使用 foreach 根据另一个查询更新 mysql 数据库中的字段