2012-03-06 159 views
-2

的PHP文件中包含的代碼,如:解析陣列

<?php 

return array(

    // commments... 
    'some_item'  => 'abc', 

    // commments... 
    'some_other_item' => array(1, 2, 3), 

    ... 

); 

什麼是從我的PHP應用程序中,以「解析」這個文件不知何故,並能夠在其更新數據的最佳方式,而不會打破格式化,代碼等?

+3

爲什麼你會在PHP代碼數據存儲在首位? – miki 2012-03-06 20:01:18

+0

這是真正的基礎數據,應用程序需要在啓動時(db連接)。 – Alex 2012-03-06 20:02:51

+0

然後首先包含文件併爲數組命名,如$ myArray = Array(...);並且不需要返回它。 – 2012-03-06 20:04:15

回答

5

$content = require($file);將獲得該文件的內容(注意相對路徑和require VS include語義)。

file_put_contents($file, '<?php return ' . var_export($content, true) . ';');會將內容寫回文件,但格式會改變。如果你確實需要保持格式化,你可以看看PHP Beautifier。這不是一個完美的解決方案。

2

的最佳方法是對include它;是的,include會返回一個值!

$data = include 'someData.php'; 
+0

好的我知道,但是如何更新代碼呢? – Alex 2012-03-06 20:07:09

+0

@Alex:你沒有。使用數據庫。 – Ryan 2012-03-06 20:08:01

1

你想加載包含在數組中的文件名嗎?如果是這樣的:

$array_of_files = array('header.php','database.php','../inc/other_stuff.php'); 

foreach($array_of_files as $file) 
{ 
    include $file; 
} 
2

假設你的數組只有兩個項目

<?php 
    $myArray=include 'data.php'; 
    $myArray[count($myArray)]='Item-3'; 
    echo $myArray[2]; // Item-3 
?>