문제
방금 웹 응용 프로그램을 로컬로 테스트했는데 모든 것이 잘 작동하지만 서버 응용 프로그램에 업로드 한 후에는 다르게 작동합니다. 기능 형식 형식 형식을 사용하여 Diacritic 기호를 변환하고 깨끗한 URL을 얻습니다 ... 로컬에서는 잘 작동하지만 서버에서는 동일한 방식으로 변환하지 않습니다.
며칠 전에 나는 이것을 세 번째 서버에서 테스트했으며 잘 작동했습니다. 이제이 세 번째 서버에서 다시 테스트하기 위해 웹을 업로드하고 있지만 실제로 그러한 행동의 원인이 무엇인지 궁금합니다.
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
그러나 지역적으로, 나는이 문제가 없었습니다
해결책
귀하의 파일은 어떤 숯불로 작성 되었습니까?
문자열로 코드로 직접 교체하려는 문자를 작성 했으므로 파일이 사용하는 모든 문자열로 인코딩됩니다. 그 숯이 브라우저에서 얻는 것과 다른 경우, 당신의 기능은 작동하지 않습니다.
명심해야 할 중요한 점은 문자열이 인코딩 된 숯을 항상 추적하고 NECCESSARY 일 때 변환하는 것입니다.
보세요 PHP의 숯불에 대한 Kore Nordmanns FAQ 숯불에 대한 더 많은 포인터를 위해.
다른 팁
이를 위해 기존의 고도로 테스트 한 코드에 의존하는 것이 좋습니다. 이 모든 기능은 UTF-8 입력 및 출력 7 비트 ASCII를 가정합니다.
remove_accents()
WordPress에서- 드 루팔 음역 모듈 (Drupal에서 풀기 위해 약간의 작업이 필요합니다)
utf8_to_ascii()
유서 깊은 곳에서 PHP UTF8 프로젝트friendly_url()
Jakub Vrána에 의해Doctrine_Inflector::urlize()
slugify()
견고 해 보인다
제휴하지 않습니다 StackOverflow