2012-02-17 110 views
2

我通過「var_export($ schools,true)」將變量輸出到textarea,因此用戶可以對其進行編輯。然後我想用所做的更改'更新'變量。更新通過POST方法接收。在PHP中var-export函數的反義詞是什麼?

我有一些文字我想成爲變量。我怎樣才能做到這一點?

我現在要做的是我在.php文件中手動編輯變量。我想給用戶的網頁界面做同樣的事情。不會有任何安全問題,因爲這只是嚴格的內部工具。

樣品變量

$schools = array(

    "PHCS"=> array(
     "full_name"=> "Pacific Hills Christian School", 
     "version"=> "4.0.2b", 
     "etc"=> "etc" 
    ), 

    "WAC"=> array(
     "full_name"=> "Wollondilly Anglican College", 
     "version"=> "4.0.1", 
     "etc"=> "etc" 
    ), 
); 
+3

我不敢說'eval'。你不能使用像JSON這樣的簡單格式,它有一個專門的分析方法嗎? – deceze 2012-02-17 05:51:01

+0

更多的信息會對您有所幫助。你將如何從該文本框中檢索數據?通過post,通過jQuery或JavaScript與事件監聽器等。 – busypeoples 2012-02-17 05:53:26

+0

有一個非常有趣的函數稱爲'print_r_reverse()',幾年前由用戶提交。看看它:http://www.php.net/manual/en/function.print-r.php#93529 – 2012-02-17 05:57:27

回答

2

你會考慮使用由於存在安全風險,使用哪種方法相當具有爭議性。

我建議你使用serialize()unserialize(),或者甚至更好的JSON函數。

JSON編碼/解碼是顯示給用戶的最佳選擇,因爲它的可讀性很好。

+0

eval()很好地工作,謝謝。 – Radek 2012-02-17 06:48:09

0

繼php.net的建議,如果你打算改變你應該使用序列化和反序列化對象:

$var = serialize(array('hello')); 
// string(22) "a:1:{i:0;s:5:"hello";}" 
var_dump(unserialize($var)); 
+0

序列化不適合在問題中使用,用戶必須計算字符串中字符的數量才能正常工作。 – wyqydsyq 2012-02-17 06:01:58

相關問題