我得到了配置文件数据库.php
<?php defined('_ENGINE') or die('Access Denied'); return array (
'adapter' => 'mysqli',
'params' =>
array (
'host' => 'localhost',
'username' => 'root',
'password' => 'root',
'dbname' => 'db',
'charset' => 'UTF8',
'adapterNamespace' => 'Zend_Db_Adapter',
),
'isDefaultTableAdapter' => true,
'tablePrefix' => 'engine4_',
'tableAdapterClass' => 'Engine_Db_Table',
); ?>
如何仅从此数组中获取密码?
类似echo $array['password'];
如何从database.php
获取数组?
需要包含文件并将返回值绑定到变量,如以下示例所示。
$db_conf = require ('/path/to/database.php');
$db_conf
将包含数据库返回的数据.php。
文档
- PHP: 包含 - 手动
如何从数组中读取特定值?
由于您使用的是嵌套数组,因此解决方案并不像您想象的那么遥远。首先使用 $a[key]
获取存储在 params
下的数组,然后从那里获取 password
的值。
如下例所示。
$password = $array['params']['password'];
注意:以上在逻辑意义上等同于;
$params = $array['params'];
$password = $params['password'];
文档
- PHP: 数组 - 手动
尝试了上述方法,但它只是在我脸上大喊">访问被拒绝",为什么?
为了保护数据库.php防止意外访问,它已通过检查进行保护,以便它在引擎内部使用。
如果未定义_ENGINE
脚本,脚本将die
。
如果要使用数据库.php在引擎之外的脚本中,则需要在包含文件之前定义_ENGINE常量。
define ('_ENGINE', 1);
...
$db_conf = include ('database.php');
echo $array['params']['password'];
试一试。