我剛剛在本地測試了我的Web應用程序,一切正常,但上傳到服務器應用程序後的行爲有所不同。我使用函數formatiraj_string_url來轉換變音符號,並獲得乾淨的網址...本地它工作正常,但在服務器上這個功能不會以同樣的方式轉換它們。不同的服務器上的字符集?
幾天前,我在第三臺服務器上測試了它,它工作正常。現在我正在上傳Web以再次在第三臺服務器上進行測試,但我只是想知道這種行爲的真正原因是什麼?
function formatiraj_string_url($string)
{
$string = strtolower($string);
$znak[0] = ' ';
$znak[1] = 'Š';
$znak[2] = 'š';
$znak[3] = 'Đ';
$znak[4] = 'đ';
$znak[5] = 'Č';
$znak[6] = 'č';
$znak[7] = 'Ć';
$znak[8] = 'ć';
$znak[9] = 'Ž';
$znak[10] = 'ž';
$znak[11] = 'Š';
$znak[12] = 'Đ';
$znak[13] = 'Č';
$znak[14] = 'Ć';
$znak[15] = 'Ž';
$znak[16] = 'š';
$znak[17] = 'đ';
$znak[18] = 'č';
$znak[19] = 'ć';
$znak[20] = 'ž';
$znak[21] = 'Š'; // Š
$znak[22] = 'š'; // š
$zamjena[0] = '-';
$zamjena[1] = 's';
$zamjena[2] = 's';
$zamjena[3] = 'd';
$zamjena[4] = 'd';
$zamjena[5] = 'c';
$zamjena[6] = 'c';
$zamjena[7] = 'c';
$zamjena[8] = 'c';
$zamjena[9] = 'z';
$zamjena[10] = 'z';
$zamjena[11] = 's';
$zamjena[12] = 'd';
$zamjena[13] = 'c';
$zamjena[14] = 'c';
$zamjena[15] = 'z';
$zamjena[16] = 's';
$zamjena[17] = 'd';
$zamjena[18] = 'c';
$zamjena[19] = 'c';
$zamjena[20] = 'z';
$zamjena[21] = 's';
$zamjena[22] = 's';
$string = str_replace($znak, $zamjena, $string);
$new_string = preg_replace("/[^a-zA-Z0-9-s]/", "", $string);
return $new_string;
}
編輯:str_replace函數之前,該函數中使用的preg_replace。在服務器這是錯誤表明:
Warning: preg_replace() [function.preg-replace]: Compilation failed: nothing to repeat at offset 0 in /home2/sinjcom/public_html/sinj.com.hr/administracija/include/funkcije.php on line 200
但本地,我沒有這個問題
謝謝你的回答! – 2009-10-15 11:32:53