我已經將來自外部服務器的響應保存到文本文件,所以我不需要保持運行連接請求。相反,也許我可以將文本文件用於我的操作目的,直到我再次讀取重新連接。 (另外,我的連接請求被侷限於此之外服務器)PHP Array保存到文本文件
以下是我已經保存到文本文件:
records.txt
Array
(
[0] => stdClass Object
(
[id] => 552
[date_created] => 2012-02-23 10:30:56
[date_modified] => 2012-03-09 18:55:26
[date_deleted] => 2012-03-09 18:55:26
[first_name] => Test
[middle_name] =>
[last_name] => Test
[home_phone] => (123) 123-1234
[email] => [email protected]
)
[1] => stdClass Object
(
[id] => 553
[date_created] => 2012-02-23 10:30:56
[date_modified] => 2012-03-09 18:55:26
[date_deleted] => 2012-03-09 18:55:26
[first_name] => Test
[middle_name] =>
[last_name] => Test
[home_phone] => (325) 558-1234
[email] => [email protected]
)
)
實際上,有更多的陣列,但我確定2是好的。由於這是一個文本文件,我想假裝這是實際的外部服務器(向我發送相同的信息),我怎麼才能使它成爲真正的數組呢?
我知道我需要先打開文件:
<?php
$fp = fopen('records.txt', "r"); // open the file
$theData = fread($fh, filesize('records.txt'));
fclose($fh);
echo $theData;
?>
到目前爲止$theData
是一個字符串值。有沒有辦法將它轉換回原來的陣列?
你肯定var_export'ed數據可以轉換回陣?!僅供參考,php.net手冊說另一個事實:var_export()不處理循環引用,因爲它幾乎不可能爲此生成可分析的PHP代碼。如果你想用數組或對象的完整表示來做一些事情,可以使用serialize()。 – rajukoyilandy
@rajukoyilandy:無論是可以序列化或json_encode。循環引用是對象結構中的一個場合,但不是OP中的普通數組。 'var_export'文件是簡單的php片段,通常會包含()d。人們應該小心使用它,但它對於配置文件非常重要。 – mario
var_export與print_r或var_damp相同 – Sergey