php7 读取php.ini[4]

1.需要实现的细节

  • 在php.ini加上
  • [initest]
  • initest.username=test
  • nitest.userage=99
  • 实现一个initest类 ,实现一个ini_echo方法,打印相关内容

2.initest扩展

2.1创建类的扩展:

[[email protected] ext]# cd /usr/local/src/php-7.0.3/ext

[[email protected] ext]# ./ext_skel --extname=initest

2.2 修改配置

[[email protected] ext]# vim initest/config.m4

dnl PHP_ARG_WITH(initest, for initest support,
dnl Make sure that the comment is aligned:
dnl [  --with-initest             Include initest support])更改为:
PHP_ARG_WITH(initest, for initest support,
dnl Make sure that the comment is aligned:
[  --with-initest             Include initest support])

2.3 实现代码

在php_initest.h中打开全局变量设置块的注释,改成自己相要的变量如下

ZEND_BEGIN_MODULE_GLOBALS(initest)
    zend_long  userage;
    char      *username;ZEND_END_MODULE_GLOBALS(initest)

在initest.c打开相关注释,并添加相关代码

ZEND_DECLARE_MODULE_GLOBALS(initest)PHP_INI_BEGIN()
    STD_PHP_INI_ENTRY("initest.userage","1", PHP_INI_ALL, OnUpdateLong, userage, zend_initest_globals, initest_globals)
    STD_PHP_INI_ENTRY("initest.username","username", PHP_INI_ALL, OnUpdateString, username, zend_initest_globals, initest_globals)PHP_INI_END()PHP_MINIT_FUNCTION(initest){

    REGISTER_INI_ENTRIES();
    return SUCCESS;}PHP_MSHUTDOWN_FUNCTION(initest){
    /* uncomment this line if you have INI entries
    UNREGISTER_INI_ENTRIES();
    */

    UNREGISTER_INI_ENTRIES();
    return SUCCESS;}static void php_initest_init_globals(zend_initest_globals *initest_globals){
    //initest_globals->userage = 1;    //initest_globals->username = "testusername";}PHP_FUNCTION(ini_echo){
        php_printf("username:%s\n",INITEST_G(username));
        php_printf("userage:%d\n",INITEST_G(userage));}const zend_function_entry initest_functions[] = {
    PHP_FE(confirm_initest_compiled,    NULL)       /* For testing, remove later. */
    PHP_FE(ini_echo,    NULL)       /* For testing, remove later. */
    PHP_FE_END  /* Must be the last line in initest_functions[] */};

2.4 编译

* [[email protected] hello]# [[email protected] person]# ./configure && make && make install

2.5 扩展安装

[initest]
initest.userage=99initest.username=test

extension=initest.so
2.6 扩展使用
[[email protected] tests]# cat test.php<?php

ini_echo();[[email protected] tests]# php test.phpusername:testuserage:99
- 请尊重本人劳动成功,可以随意转载但保留以下信息 
- 作者:岁月经年 
- 时间:2016年03月
- 来自:www.djhull.com
时间: 2024-11-07 07:56:04

php7 读取php.ini[4]的相关文章

C++ 中使用boost::property_tree读取解析ini文件

boost 官网 http://www.boost.org/ 下载页面 http://sourceforge.net/projects/boost/files/boost/1.53.0/ 我下载的是 boost_1_53_0.tar.gz 使用系统  ubuntu 12.10 一.解压 [plain] view plaincopy tar -zxvf  boost_1_53_0.tar.gz 得到一个文件夹 boost_1_53_0,  拷贝其子目录 boost 到以下路径 [plain] vi

boost::property_tree读取解析ini文件--推荐

boost::property_tree读取解析ini文件 [cpp] view plaincopy #include "stdafx.h" #include <iostream> #include <boost/property_tree/ptree.hpp> #include <boost/property_tree/ini_parser.hpp> int main() { boost::property_tree::ptree pt; boos

PHP7中php.ini、php-fpm和www.conf的配置(转)

根据前文 <2015博客升级记(五):CentOS 7.1编译安装PHP7> 的 configure 编译参数设定,安装后的PHP7配置文件所在路径是 /usr/local/php7/etc .该目录下会有两个配置文件: php-fpm.conf 和 php.ini ,以及一个文件夹 php-fpm.d (包含 www.conf 文件). 因此,这篇文章主要对这三个PHP配置文件的进行简单说明,具体的配置过程见本文末尾的 附录 部分. 1 配置php.ini php.ini是php运行核心配置

C语言实现 读取写入ini文件实现(转)

#include <stdio.h> #include <string.h> /* * 函数名: GetIniKeyString * 入口参数: title * 配置文件中一组数据的标识 * key * 这组数据中要读出的值的标识 * filename * 要读取的文件路径 * 返回值: 找到需要查的值则返回正确结果 * 否则返回NULL */ char *GetIniKeyString(char *title,char *key,char *filename) { FILE *f

selenium+python自动化测试--读取配置文件(.ini)

前言:今天为什么要整理读取配置文件呢?原因是:公司正在做的项目,操作页面时都是根据路由跳转,由于自己经验尚浅,将url地址写在每个用例中,导致每次开发一更改路由,我就要去每个页面中修改url地址,光来来回回找页面就很费时间,所以就想到了用配置文件,将所有url地址放在一个文件中,页面用到哪个时读取哪个. 一.基础了解 ini ini配置文件格式如下: ;这里是注释 [section0] key0 = value0 key1 = value1 [section1] key2 = value2 ke

php读取不到指定的php.ini配置

启动时指定路径 解决方案一:修改  /etc/init.d/php-fpm 文件 1 # 在这行命令上添加 指定的配置路径 2 php_opts="--fpm-config $php_fpm_CONF --pid $php_fpm_PID" 3 4 # 修改成 5 php_opts="--fpm-config $php_fpm_CONF -c /usr/local/php7/etc/php.ini --pid $php_fpm_PID" 解决方案二:启动时指定路径

MongDB PHP7

---恢复内容开始--- PHP7 Mongdb 扩展安装 我们使用 pecl 命令来安装: $ /usr/local/php7/bin/pecl install mongodb 执行成功后,会输出以下结果: -- Build process completed successfully Installing '/usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/mongodb.so' install ok: channel:

win10+PHP7

在D盘自定义新建文件夹ApacheServer 再在ApacheServer文件夹下分别建立php,Apache,mysql,web四个文件夹分别用来存放 php,apache,mysql,项目文件 先安装对应的 vc_redist.x64 这里是VC14_64 Apache安装 将httpd-2.4.20-win64-VC14解压缩到D:/ApacheServer/Apache目录下 修改配置文件D:/ApacheServer/Apache/conf/httpd.conf ServerRoot

centos7 源码安装php7

系统:centos7.2 php版本:php7.0.0 安装前工作: yum install gcc make crul-devel libxslt-devel gd-devel libjpeg-devel libpng libpng-devel libxml2-devel bzip2-devel libcurl-devel –y      #如果下面 配置编译报错 请yum安装相关依赖包 wget -O /etc/yum.repos.d/epel.repo http://mirrors.ali