2012-06-28 251 views
0

让PHP数组我有一个PHP文件list.php的从另一台服务器

<?php 
$arr=array('444','555'); 
echo var_export($arr); 
?> 

现在我想从使用的file_get_contents另一个PHP脚本的阵列。 这怎么能实现?我不想使用会话。 这两个脚本位于不同的服务器上。

回答

8

您可以使用serialize()数组或使用json_encode()以JSON编码数组。然后,在另一个PHP脚本中,您将使用unserialize()json_decode()将字符串重新获取到数组中。

实施例,使用serialize()

在a.php只会(服务器A)

$array = array("foo" => 5, "bar" => "baz"); 
file_put_contents('array.txt', serialize($array)); 

在b.php(服务器B)

$string = file_get_contents('http://www.otherserver.com/array.txt'); 
$array = unserialize($string); 
var_dump($array); // This will print the original array 

你也可以输出字符串从PHP脚本,而是将其保存到文件中,就像这样:

在a.php只会(在服务器A)

$array = array("foo" => 5, "bar" => "baz"); 
echo serialize($array); exit; 

在b.php(服务器B )

$string = file_get_contents('http://www.otherserver.com/a.php'); 
$array = unserialize($string); 
var_dump($array); // This will print the original array 
+0

请问您能解释一下,使用代码示例吗?我实际上尝试了你提到的两种方式。我得到一个错误:php unserialize在偏移量为0时出错。对于json,我得到的结果是NULL。 – ASHUTOSH

+0

@ASHUTOSH - 已经添加了一个简单的例子。让我知道如果这不适合你 – nickb

+0

谢谢尼克。前面我用户以下代码:在a.php <?php $ arr = array('444','555'); echo serialize($ arr); ? >和在b.php 我做错了吗? – ASHUTOSH

0

作为一个小扩展nickb的回答是:

SCRIPT1

$arr=array('444','555'); 
file_put_contents("data.txt", serialize($arr)); 

脚本2

$arr = unserialize(file_get_contents("data.txt")); 

应该努力!

编辑:哦,尼克尼自己添加了一个例子:)

相关问题