【发布时间】:2011-12-16 12:30:35
【问题描述】:
我们目前正在对数据库执行搜索并以 JSON 格式返回结果,以便在 Google 地图上使用。我们调用的文件名为getvenues.php,在服务器上运行良好。它接受多个参数并根据查询返回结果。
然后我们有一个单独的文件来检查服务器上是否存在包含结果的JSON 文件,将其年龄与设置进行匹配,然后从缓存文件中返回数据,或者构建一个新的如果文件太旧,请缓存文件。
由于有数千种可能的搜索选项,我们只缓存单个搜索(在县、地区或类型上)。 JavaScript 总是调用我们的search_cache_builder.php 文件。如果有多个搜索参数,该文件只获取getvenues.php 返回的内容并提供它而不进行任何缓存。
除了一个特定的组合外,一切都很好。如果搜索venue_type=Castle / Fort 和venue_name=Leeds Castle,search_cache_builder.php 返回一个空数组,即使直接访问getvenues.php 会返回所需的数据。
这是getvenues.php 处理此数据的示例> http://dev.weddingvenues.com/lincweb/getvenues.php?type=Castle%20/%20Fort&venue_name=Leeds%20Castle
这是search_cache_builder.php 脚本通过相同搜索返回的内容(我们发送到的地址是正确的)> http://www.weddingvenues.com/search_cache_builder.php?type=castle%20/%20fort&venue_name=Leeds%20Castle
这是search_cache_builder.php 文件的代码,它与此特定查询相关:
$get_string = '?';
foreach($_GET as $key => $value)
{
if($get_string === '?')
{
$get_string .= $key . '=' . $value;
}
else
{
$get_string .= '&' . $key . '=' . $value;
}
}
//$get_string = str_replace(' ', '', $get_string);
// Otherwise, we need to serve up the page as is:
$file_url = GET_VEN_URL . $get_string;
echo file_get_contents($file_url);
谁能解释为什么search_cache_builder.php 文件返回一个空数组?
【问题讨论】:
标签: php json file-get-contents