我們目前正在對數據庫執行搜索並以JSON格式返回結果以在Google地圖上使用。我們所稱的文件名爲getvenues.php
,在服務器上效果很好。它接受許多參數並根據查詢返回結果。奇怪的file_get_contents()選項
然後我們有一個單獨的文件,檢查服務器上是否有包含結果的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
文件正在返回一個空數組?
但經營上唯一的城堡/堡搜索工作正常: http://www.weddingvenues.com/search_cache_builder.php ?類型=城堡%20 /%20fort – BenM 2011-12-16 13:01:34
可以是一個雙編碼,我您的評論之前編輯這個答案1秒;如果你改變工作順序) – 2011-12-16 13:02:37
:http://www.weddingvenues.com/search_cache_builder.php? venue_name =利茲%20Castle&類型=城堡%20 /%20fort(必須是在URL編碼) – 2011-12-16 13:04:10