- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用像 [parse_ini_file][1] 这样的东西。
例如,我有一个 boot.ini 文件,我将加载该文件以进行进一步的处理:
;database connection settings
[database]
type = mysql;
host = localhost;
username = root;
password = "";
dbName = wit;
但是,我想以与 php 数组不同的方式使用它:
$ini['database']['whatever']
所以首先我想让我的 boot.ini 像这样的结构:
;database settings (comment same style)
db.host1.type = mysql;
db.host1.host = localhost;
db.host1.username = root;
db.host1.password = "";
db.host1.dbName = wit;
db.host2.type = mysql;
db.host2.host = otherHost;
db.host2.username = root;
db.host2.password = "";
db.host2.dbName = wit;
所以当我现在访问文件时,我想以这种方式访问它:
$ini['db']['host1']['whatever']
最重要的是,我想通过 OOP 来完成,所以可以说:$ini->db->host1->随便
or `$ini->db->host1`
将返回一个数组,其中包含所有属性,例如类型、主机、用户名、密码和数据库名称;
我感谢任何形式的帮助。非常感谢您。
[1]: http://uk2.php.net/manual/en/function.parse-ini-file.php
最佳答案
那么,您需要对 parse_ini_file 进行后处理然后是结果数组。
$ini_array = parse_ini_file("bootstrap.ini");
$ini = new stdclass;
foreach ($ini_array as $key=>$value) {
$c = $ini;
foreach (explode(".", $key) as $key) {
if (!isset($c->$key)) {
$c->$key = new stdclass;
}
$prev = $c;
$c = $c->$key;
}
$prev->$key = $value;
}
更新 Hackety-Hack。现在使用额外的 $prev
再次取消设置最后一个对象级别。 (检测最后一个 $key 的 for 循环会更好)。
如果您想使用数组语法和对象语法,请将new stdclass
替换为new ArrayObject(array(), 2);
.
关于php parse_ini_file oop & 深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5724265/
我正在使用 parse_ini_file 来读取文件的内容,但并不总是成功。 例如,这个文件工作正常: [playlist] numberofentries=3 File1=http://scfire
我在加载 parse_ini_file 时遇到问题,目前我已经在包含路径中注册了一个路径,但是 parse_ini_file 出现了意外行为(未加载) (小说明:使用phpunit测试,不知道是否影响
我有这个代码: $test = parse_ini_file("../data/test.ini"); test.ini 位于后一个目录,然后转到数据文件夹。但我遇到的问题是 parse_ini_fi
我有一个如下所示的 config.ini 文件: [database] username = user1 password = pass1 dbname = db1 我想用 PHP 解析它,但我没有运
如果我调用 php 的 parse_ini_file("foo.ini"),它会在什么路径中查找 foo.ini?包含路径?该函数的文档没有提及它。 最佳答案 parse_ini_file 的文件名参
我使用 php 命令 parse_ini_file 加载应用程序的配置。查看 php documentation有一个例子,我们在这里看起来,通过使用不带引号的那些 ",数值被排除在外。所以我使用了这
我知道有些人将设置存储在 .ini 文件中,并在 PHP 中使用 parse_ini_file() 获取值。没有运行测试,我对性能很好奇。 如果设置在 ini 文件中,您是否知道操作码缓存是否可以缓存
我遇到了一个奇怪的问题,很奇怪,因为在 Google 上什么也没有出现。我正在尝试解析一个充满 HTTP 状态代码的 ini 文件 StatusCodes.ini。我已经在三种不同的环境中进行了测试,
我想使用像 [parse_ini_file][1] 这样的东西。 例如,我有一个 boot.ini 文件,我将加载该文件以进行进一步的处理: ;database connection sett
parse_ini_file() 有什么替代方案吗?真的有那么危险吗?是禁用它的充分理由,还是我可以以某种方式说服管理员它是安全的? parse_ini_file() has been disable
我有一个包含我的数据库详细信息的 settings.ini.php 文件。 ; [SQL] host = localhost user = root password =Gohead123$ dbna
下面的函数获取“test-backup.ini”文件,解析它并通过 update_option() 方法将值输入到数据库中。 但是,当 ini 文件的值包含特殊字符(如感叹号 (!) 和等号 (=))
PHP 5.3 添加了 $scanner_mode parse_ini_file() 的参数.它是什么? 该文档不是很有用: scanner_mode Can either be INI_SCANNE
我创建了一个带有数据库凭据的 config.ini 文件,并像这样在我的 dbconnect.php 页面中解析该文件 - $config = parse_ini_file('../somefolde
我想在配置文件中保留某个字符串,以便由 PHP 解析 parse_ini_file()功能。但是,此字符串包含一些需要以某种方式编码的特殊字符(代码如 0x2C 或 0x3D)。有什么办法可以在这样的
是否可以使用设置文件创建数组? 在 index.php 文件中,它读取 .ini 文件: // Parse config file $settings = parse_ini_file("settin
我正在尝试创建一个安全的 mysql 连接,并且我创建了一个函数来创建连接和包含登录凭据的 db.ini 文件。 db.ini: [database] user = username pass = p
我有一个 folder.ini 包含: [Labels] ; Ordnername name=testverzeichnis ; Ordnerbeschreibung description=verz
这里是新语言,PHP 对我来说是一种新语言。我正在尝试开发一个网络应用程序。为了保证安全,我试图将我的数据库登录凭据保存在一个简单的 ini 文件(称为 db.ini)中。 1) 我的系统运行的是 U
我有这个文件: [playlist] numberofentries=4 File1=http://108.61.73.119:8128 Title1=(#1 - 266/1000) 181.FM -
我是一名优秀的程序员,十分优秀!