在本地,但沒有工作,我有以下行代碼來檢索和檢查它反對我的數據庫之前解碼網址:urldecode()和rawurldecode()直播服務器
$urls = url_split(url_current());
$url_page = (string)rawurldecode($url[0]);
的URL被拆分,並把到使用以下功能的數組:
function url_current()
{
// Check for HTTPS
$http = 'http';
if (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on") $http .= 's';
$http .= '://';
// Return URL
return $http . $_SERVER['HTTP_HOST'] . $_SERVER["REQUEST_URI"];
}
function url_split ($url)
{
// Retrieve URLs - Remove URL and split into array
$url = explode('/', str_replace('http://www.siteurl.com', '', $url));
// Build new array, remove blanks
$urls = array();
for ($i = 0; $i < sizeof($url); $i++)
{
if ($url[$i] != '') $urls[] = $url[$i];
}
// Return array
return $urls;
}
這是工作(使用Zend)我的本地服務器上,但它不工作我活的服務器上。這不應該是$ _SEVER變量的問題,因爲它們都返回正確的數據。我不知道爲什麼這將在我的本地服務器上執行不同於我的現場服務器。有沒有在php ini中設置可能會導致此問題?
在我的本地服務器YRJ%C3%B6laitinen產生yrjölaitinen但我活的服務器上它產生yrjölaitinen。
您是否嘗試調試過這些? – Jon
我已更新我的帖子以顯示正在製作的內容的示例。 – chapmanio
定義「在我生效的服務器上它產生」。正在發射的數據看起來是一樣的;解釋是不同的。所以我懷疑你的測試服務器宣傳Charset UTF8,而你的實時服務器宣傳ISO-8859-1或ISO-8859-15(又名Latin1)。用Firebug或其他HTTP通信檢查工具檢查服務器標題。 – LSerni