1

我将下面提到的代码(实际上是配置)写在一个文件(config.php)中,我想在另一个文件(check.php)中获取写在 config.php 中的内容

用 config.php 编写的代码:

<?php
$CONFIG = array (
  'id' => 'asd5646asdas',
  'dbtype' => 'mysql',
  'version' => '5.0.12',
);

用 check.php 编写来获取内容的代码是:

$config_file_path = $_SERVER['DOCUMENT_ROOT'] . 'config.php';
$config = file_get_contents($config_file_path);

使用上面的代码,我将输出作为字符串获取,并且我想将其转换为数组。为此,我尝试了以下代码。

$config = substr($config, 24, -5); // to remove the php starting tag and other un-neccesary things

$config = str_replace("'","",$config);
$config_array = explode("=>", $config);

使用上面的代码,我得到如下输出:

Array
(
    [0] =>   id 
    [1] =>  asd5646asdas,
  dbtype 
    [2] =>  mysql,
  version 
    [3] =>  5.0.12
)

这是不正确的。

有什么办法可以将其转换为数组。我已经尝试了 serialize() 以及从 php 中的另一个页面访问数组中提到的,但没有成功。

对此的任何帮助将不胜感激。

4

6 回答 6

4

你不需要file_get_contents

require_once 'config.php'
var_dump($CONFIG);
于 2013-06-21T12:33:57.273 回答
3

如果您这样做,我对您的方法感到非常困惑:

include(config.php);

然后您的 $CONFIG 变量将在其他页面上可用。

print_r($CONFIG);

PHP 网站上查看包含函数的文档

于 2013-06-21T12:29:44.917 回答
3

使用 include 或 require 来包含和执行文件。不同之处在于文件不存在时会发生什么。inlcude会抛出一个警告,require一个错误。为了确保第一次加载(并执行)文件,您也可以使用include_oncephp.netrequire_one 如果 您无法包含该文件(有什么原因),请查看从字符串执行 php 代码的eval() 函数. 但出于安全原因,这根本不推荐!

require_once('config.php');
include_once('config.php');
require('config.php');
include('config.php');
于 2013-06-21T12:38:49.257 回答
1

如果你使用 codeigniter 不需要包含配置文件,你可以使用 $this 访问,但如果你使用普通 php,你需要使用 include() 或 require() 或 include_once() 或 require_once()

于 2013-06-21T12:33:09.063 回答
0

简单的

include_file "config.php";
于 2013-06-21T12:29:09.733 回答
0

你怎么能不阅读require_once指令?:)

$config = file_get_contents($config_file_path);

一定是:

require_once $config_file_path;
// now you can use variables, classes and function from this file
var_dump($config);

如果您点击手册页的链接require_once请阅读关于includeinclude_once。作为一名 PHP 开发人员,您必须了解这一点。这是初级的

于 2013-06-21T12:29:29.703 回答