Frage

Ich habe gerade vor Ort meine Web-Anwendung getestet, alles funktioniert gut, aber nach dem Hochladen auf Server-Anwendung verhält sich anders. Ich benutze Funktion formatiraj_string_url zu diakritische Symbole zu konvertieren und sauber url zu bekommen ... lokal es funktioniert gut, aber auf dem Server diese Funktion doesnt wandeln sie die gleiche Art und Weise.

Ein paar Tage zuvor testete ich diese auf einigen dritten Server und es funktionierte gut. Jetzt bin ich Upload Web zu testen erneut auf diesem dritten Server, aber ich frage mich nur, was wirklich die Ursache für ein solches Verhalten sein könnte?

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;
    }

EDIT: Vor str_replace, mit dieser Funktion preg_replace. Auf Server war dies der Fehler zeigt:

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

Aber vor Ort, habe ich nicht dieses Problem haben

War es hilfreich?

Lösung

Welche charset wird Ihre Datei geschrieben?

Da Sie die Zeichen geschrieben haben, würden Sie direkt in Ihren Code ersetzen möchte, als Strings, werden sie verschlüsselt in welcher die Datei verwendet charset. Wenn das charset unterscheidet sich von dem, was man aus dem Browser heraus zu bekommen, sind Ihre Funktionen nicht zur Arbeit gehen.

Der wichtige Punkt, den Sie im Auge behalten müssen, ist immer der Überblick über die charset zu halten Ihre Strings codiert werden mit und konvertieren, wenn nötig.

Hier finden Sie aktuelle Kore Nordmanns FAQ über charsets in PHP für einige weitere Hinweise über charsets.

Andere Tipps

Ich empfehle Ihnen, stützen sich auf bestehende, hoch getesteten Code, dies zu tun. Ich glaube, dass alle diese Funktionen UTF-8 Ein- und Ausgabe 7-Bit-ASCII annehmen:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top