php - 不同服务器上的字符集不同?

标签 php apache str-replace

我刚刚在本地测试了我的网络应用程序,一切正常,但上传到服务器应用程序后表现不同。我使用函数 formatiraj_string_url 来转换变音符号并获取干净的 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

但是在本地,我没有这个问题

最佳答案

我建议您依靠现有的、经过严格测试的代码来执行此操作。我相信所有这些函数都假设 UTF-8 输入和输出 7 位 ASCII:

关于php - 不同服务器上的字符集不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1556415/

相关文章:

ruby-on-rails - 开发 Ruby On Rails 网络应用程序 : How can I move it to a server?

apache - 如何在 Apache 中启用 mod_env

linux - 了解服务器结构

php - str_replace() 与 foreach、大写和精确单词匹配

php - 在youtube iframe中添加变量

php - 如何将可变数量的参数传递给 PHP 函数

php - 添加 JOIN 查询导致失败

php - 我的 str_replace 代码不起作用

Ruby - 如果实例不匹配,则替换字符串中的单词

php - 测试是否已经存在