如何获取数组信息


How to get array information

我得到了配置文件数据库.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'];

试一试。