【发布时间】:2013-07-25 19:46:09
【问题描述】:
我使用 flickr API + PHP 创建了一个应用程序。不知何故,我的代码在我的本地机器上工作,但是当我将它部署到服务器上时它会中断。
我得到的警告是:
警告:在第 124 行的 /home/u189255383/public_html/imageGallery/imageProcess.php 中为 foreach() 提供的参数无效。
在我的代码中,这部分是 foreach($resultObj['photos']['photo'] as $photo) 只是一个处理从请求 flickr API 获取结果的函数传入的结果的代码。
我发现它说无效只是因为 $resultObj 中没有任何内容,这就是为什么它是无效参数,但我不明白为什么它是空的。
$url = $request . $method . $sign . $apiKey . $sign . 'text=' . urlencode($input) . $sign . $per_page . $sign . $page . $i . $sign . $format;
$result = file_get_contents($url);
$resultObj = unserialize($result);
这基本上是我在返回结果之前所做的。我试图查看$result 中是否有任何内容,但结果发现$result 已经为空,这意味着file_get_contents($url); 函数没有被执行。
【问题讨论】:
-
flickr 应该返回 json 而不是 php 序列化字符串.... 用 json_decode($result, true) 替换反序列化
-
顺便说一句,这也不应该在本地工作。
-
您确定您的实时服务器允许您使用带有 URL 的 file_get_contents 吗?
-
@Orangepill,我认为 flickr 返回结果的格式取决于您请求的格式。 flickr.com/services/api。你有 5 个选项,我选择 PHP 一个,其中说使用序列化 PHP 响应格式 PHP 有一个内置的序列化数据结构格式,使用 serialize() 和 unserialize() 函数。
-
@andrewsi 你的意思是“allow_url_fopen”吗?如果是这样,那么在来自实时服务器的 php.info 中它的“ON”所以我想是的?
标签: php api deployment