我已将外部服务器的响应保存到文本文件中,因此我无需继续运行连接请求。相反,也许我可以使用文本文件进行操作,直到我再次阅读重新连接。 (另外,我的连接请求仅限于此外部服务器)
以下是我保存到文本文件中的内容:
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] => someemail@somedomain.com
)
[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] => someemail@somedomain.com
)
)
数组中实际上有更多,但我确定2可以。
由于这是一个文本文件,我想假装这是实际的外部服务器(向我发送相同的信息),如何让它再次成为一个真正的数组呢?
我知道我需要先打开文件:
<?php
$fp = fopen('records.txt', "r"); // open the file
$theData = fread($fh, filesize('records.txt'));
fclose($fh);
echo $theData;
?>
到目前为止$theData
是一个字符串值。有没有办法将它转换回它最初的阵列?
答案 0 :(得分:22)
更好地序列化并保存到文件,然后反序列化回到数组。
// serialize your input array (say $array)
$serializedData = serialize($array);
// save serialized data in a text file
file_put_contents('your_file_name.txt', $serializedData);
// at a later point, you can convert it back to array like:
$recoveredData = file_get_contents('your_file_name.txt');
// unserializing to get actual array
$recoveredArray = unserialize($recoveredData);
// you can print your array like
print_r($recoveredArray);
答案 1 :(得分:3)
在将数组作为文本写入文件之前,您可以serialize
数组。然后,您可以从文件中读取数据unserialize
将其重新转换为数组。
答案 2 :(得分:3)
答案 3 :(得分:0)
JSON版
$json_data = json_encode($the_array);
file_put_contents("records.txt", $json_data);
// Recovering
$the_data = file_get_contents("records.txt");
$the_array = json_decode($the_data);