如何获取数组信息

时间:2011-12-30 06:51:04

标签: php

我有配置文件database.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'];

2 个答案:

答案 0 :(得分:4)

如何从database.php获取数组?

您需要包含该文件并将返回的值绑定到变量,例如下面的示例。

$db_conf = require ('/path/to/database.php');

$db_conf将包含 database.php 编辑的返回数据。

<强>文档


如何从数组中读取特定值?

由于您正在使用嵌套数组,因此解决方案并不像您想象的那么远。首先使用$a[key]来获取存储在params下的数组,然后从那里获取password的值。

如下例所示。

$password = $array['params']['password'];

注意从逻辑上讲,上述内容相当于;

$params   = $array['params'];
$password = $params['password'];

<强>文档


我尝试了上面的内容,但是我只是喊着“ Access Denied ”,为什么?

为了保护 database.php 不受意外访问,它已受到检查以保护它在引擎内使用。

如果未定义die,则脚本将_ENGINE

如果你想在引擎之外的脚本中使用 database.php ,你需要在 include _ENGINE 常量em> ing the file。

define ('_ENGINE', 1);

...

$db_conf = include ('database.php');

答案 1 :(得分:0)

echo $array['params']['password'];

试一试。 : - )