2013-07-16 50 views
0

我得到「注:反序列化():錯誤的偏移0 1081字節」的錯誤,而反序列化捲曲響應。PHP捲曲響應反序列化問題

捲曲請求頁面 - ping1.php:

<?php 
$ch = curl_init(); 
$curlConfig = array(
    CURLOPT_URL   => "http://example.com/test/curl/ping2.php", 
    CURLOPT_POST   => true, 
    CURLOPT_RETURNTRANSFER => true 
); 
curl_setopt_array($ch, $curlConfig); 
$result = curl_exec($ch); 
curl_close($ch); 
echo unserialize($result); 
?> 

捲曲響應頁面 - ping2.php

<?php 
$data=array('test'=>1,'testing'=>2); 
echo serialize($data); 
?> 
+0

那麼,'$ result'包含什麼? –

+0

ping2.php的輸出 – LoganPHP

+0

那麼,你能顯示它包含什麼嗎?因爲這是問題所在。這就是錯誤信息的內容。 –

回答

1

收到你的問題。

錯誤

當我跑到你的代碼,看到我

string '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> 
<html><head> 
<title>413 Request Entity Too Large</title> 
</head><body> 
<h1>Request Entity Too Large</h1> 
The requested resource<br />/experimentation/Stack/stack.php<br /> 
does not allow request data with POST requests, or the amount of data provided in 
the request exceeds the capacity limit. 
<hr> 
<address>Apache/2.2.22 (Fedora) Server at localhost Port 80</address> 
</body></html> 
a:2:{s:4:"test";i:1;s:7:"testing";i:2;}' (length=474) 

爲什麼會出現這個錯誤的結果?

由於您使用的是CURLOPT_POST,但沒有發送任何發佈數據,您會收到此錯誤。我不會在這裏解釋它,而是會向您推薦這是您問題的基礎的post

解決方案

CURLOPT_POST因爲我們沒有公佈任何數據不是必需的。

這是你的工作代碼

<?php 

$ch = curl_init(); 
$curlConfig = array(
    CURLOPT_URL   => "http://example.com/test/curl/ping2.php", 
    CURLOPT_RETURNTRANSFER => true 
); 
curl_setopt_array($ch, $curlConfig); 
$result = curl_exec($ch); 
curl_close($ch); 
print_r(unserialize($result)) ; 

?> 
0

$ result變量包含一個錯誤信息,所以它不能被去系列化

同時,應注意與ping2.php結束標記,因爲它可能包括額外的不需要的空間