2012-06-28 65 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")); 

應該努力!

編輯:哦,尼克尼自己添加了一個例子:)

相關問題