2013-06-21 5 views
1

У меня есть код (фактически, конфигурация), указанный в файле (config.php), и я хочу получить содержимое, написанное в файле config.php в другом файле (проверьте. PHP)Как читать массив с другой страницы 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(), а также упомянул в accessing array from another page in php, но не удалось.

Любая помощь по этому вопросу будет оценена по достоинству.

+0

Вы можете включить файл. Если вы хотите * разобрать * массив, вы можете проверить этот [вопрос] (http://stackoverflow.com/q/17118032/). В ответах есть [настраиваемый php-парсер] (http://stackoverflow.com/a/17134904/) и [regex solution] (http://stackoverflow.com/a/17134110/) – HamZa

ответ

1

простой

include_file "config.php"; 
+1

О, да. .. Я действительно забываю этот подход. – Debashis

1

Как вы могли не читать о 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); 

Если вы по ссылке to the require_once manual page читайте также о include и include_once. Как разработчик PHP, вы ДОЛЖНЫ знать об этом. Это элементарно

3

Я очень смущен в своем подходе, если вы просто сделать это:

include(config.php); 

Тогда ваш переменным $ CONFIG будет доступен на других страницах.

print_r($CONFIG); 

Посмотрите на PHP website which documents the include function.

1

Если вы используете codeigniter, вам не нужно включать файл конфигурации, вы можете получить доступ с помощью $ this, но если вы используете простой php, вам нужно использовать include() или require() или include_once() или require_once ()

+0

Да, я использую codeigniter, но файл config.php находится за пределами рамки. Я попробую ваше предложение. – Debashis

+0

http://ellislab.com/codeigniter/user-guide/libraries/config.html пройдите через это – KAsh

3

Вам не нужно file_get_contents:

require_once 'config.php' 
var_dump($CONFIG); 
+0

Да, я просто забыл основные функции. – Debashis

2

использование включает или требует, чтобы включить и запустить этот файл. Разница только в том, что происходит, когда файл не существует. inlcude выдает предупреждение, require. Чтобы убедиться, что только для загрузки (и выполнить) файл в первый раз, вы можете также использовать include_once, require_onephp.net Если вы каким-то образом не в состоянии включить файл (какие причины когда-либо) взглянуть на eval()function выполнить PHP код из строки. Но это не рекомендуется вообще из соображений безопасности!

require_once('config.php'); 
include_once('config.php'); 
require('config.php'); 
include('config.php');