首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从请求的服务器页获取数据?

如何从请求的服务器页获取数据?
EN

Stack Overflow用户
提问于 2012-09-18 11:56:52
回答 2查看 4.5K关注 0票数 0

我有两个php页面:client.phpserver.php

server.php在我的web服务器上,它所做的是打开我的亚马逊产品页面,获取价格数据并将其序列化并返回给client.php

现在,我遇到的问题是,server.php正在获取数据,但是当我返回数据并在使用unserialize()之后执行echo时,它什么也不会显示。但是,如果我使用echo in server.php,它会显示所有的数据。

为什么会发生这种情况?有人能帮我吗?

这是我使用的代码:

client.php

代码语言:javascript
复制
$url = "http://www.myurl.com/iec/Server.php?asin=$asin&platform=$platform_variant";
$azn_data = file_get_contents($url);
$azn_data = unserialize($azn_data);
echo "\nReturned Data = $azn_data\n";

server.php

代码语言:javascript
复制
if(isset($_GET["asin"]))
     {
         $asin = $_GET["asin"];
         $platform = $_GET["platform"];
         echo "\nASIN = $asin\nPlatform = $platform";
         //Below line gets all serialize price data for my product
         $serialized_data = amazon_data_chooser($asin, $platform);

         return($serialized_data);
     }
     else
     {
         echo "Warning: No Data Found!";
     }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-18 12:20:16

server.php上,您需要替换以下行:

代码语言:javascript
复制
return($serialized_data);

这一次:

代码语言:javascript
复制
echo $serialized_data;

由于client.php读取server.php的输出,所以return用于将信息从函数传递给调用方代码。

更新

除了上面的修正之外,您还碰到了unserialize()函数中的一个bug,它提供了一些特殊的字符组合,您的数据似乎也有这种特性,解决方案是在将数据传递给serialize()之前通过base64()编码来解决这个错误,如下所示:

client.php

代码语言:javascript
复制
$azn_data = unserialize(base64_decode($azn_data));

server.php

代码语言:javascript
复制
echo base64_encode($serialized_data);

此修复here的源。

票数 1
EN

Stack Overflow用户

发布于 2012-09-18 12:03:51

您没有在服务器端序列化您的数据,因此在客户端没有什么可反序列化的。

代码语言:javascript
复制
return(serialize($serialized_data));

编辑:

代码语言:javascript
复制
if(isset($_GET["asin"]))
     {
         $asin = $_GET["asin"];
         $platform = $_GET["platform"];
         echo "\nASIN = $asin\nPlatform = $platform";
         //Below line gets all serialize price data for my product
         $serialized_data = amazon_data_chooser($asin, $platform);

         die(serialize($serialized_data));
     }
     else
     {
         echo "Warning: No Data Found!";
     }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12476557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档