【发布时间】:2015-02-19 02:53:52
【问题描述】:
我遇到了一个相当奇怪的问题,让我完全难住了。
我正在尝试将 PHP 变量从一个文件传递到另一个文件,然后将该变量插入 Flickr API 中的搜索函数。
在上下文中,它正在提取一个包含天气预报位置的变量 ($location)。由用户输入定义的 $location(位于 scraper.php 中)进入搜索功能。该函数向 Flickr API 发送一个请求,该 API 返回一个图像 url。
目前情况:
require_once('flickr.php');
include 'scraper.php';
$Flickr = new Flickr;
$data = $Flickr->search($location);
请记住,如果我在文件本身中定义搜索字符串,这一切都会很好地工作。只有当我尝试使用来自 scraper.php 的变量时,它才根本不搜索任何内容。例如:
$string = 'hawaii'
$Flickr = new Flickr;
$data = $Flickr->search($string);
以上工作正常。更令人困惑的是,如果我在进入搜索功能之前回显“$location”,我会得到正确的结果。变量存在并包含在内。由于某种原因,它只是无法执行该功能。
任何帮助将不胜感激。以下是该项目的完整代码:
搜索.php:
echo $location;
$Flickr = new Flickr;
$data = $Flickr->search($location);
foreach($data['photos']['photo'] as $photo) {
//returns 1 photo url at large size (1024)
$image_url = 'http://farm' . $photo["farm"] . '.static.flickr.com/' . $photo["server"] . '/' . $photo["id"] . '_' . $photo["secret"] . '_b.jpg';
}
flickr.php(api键取出):
include 'scraper.php';
class Flickr {
private $apiKey = 'MYAPIKEY';
public function __construct() {
}
public function search($query = null) {
$search = 'http://flickr.com/services/rest/?method=flickr.photos.search&api_key=' . $this->apiKey . '&text=' . urlencode($query) . '&tags=city&sort=relevance&safe_search=1&per_page=1&content_type=1&has_geo=1&format=php_serial';
$result = file_get_contents($search);
$result = unserialize($result);
return $result;
}
}
我不打算包含 scraper.php,因为它非常大,但如果需要,我会添加。 $location 运行良好。
谢谢!
编辑:'scraper.php' 也被使用并将变量传递到另一个页面以显示天气。
当我从 'search.php' 中回显 '$location' 时,我会在顶部得到一个正确的字符串结果,就像我之前提到的那样。
这里是代码(search.php):
$Flickr = new Flickr;
echo $location;
$data = $Flickr->search($location);
echo 命令在顶部打印得很好。它只是不会进入搜索功能!
【问题讨论】:
-
我会在您从刮板获得的 $location 变量上尝试 var_dump()。它可能包含 html 实体或其他一些妨碍它与 Flickr API 一起使用的怪异事物。
-
在search方法里设置好var_dump $search可以吗?同样,你可以在运行 file_get_contents 后 var_dump $result 吗?
-
@KevinM1 当我在两者上运行 var_dump 时,我得到 NULL。我不确定我是否做得对,但在 search.php 中触发 Flickr->search($location) 后,我正在运行 var_dump。
-
$location 上的 @ChrisHerbert var_dump 返回的字符串很好,很好很干净。没有什么奇怪的。该字符串是从来自地下天气 API 的 JSON 中提取的。该项目最初是一个 PHP 抓取工具,但后来我在 API 中添加了并且从未更改过文件名。
-
您在日志中看到任何错误吗?
标签: php variables flickr php-include