Umgang mit anderen Zeichentabellen in PHP

  1. DieTa

    DieTa Thread StarterMacUser Mitglied

    Mitglied seit:
    17.09.2003
    Beiträge:
    3.308
    Zustimmungen:
    32
    Hallo,

    ich möchte es den Usern gerne erlauben, auch Dateinamen in Ihrer Heimatsprache auszuwählen und nicht vorher jede Datei umbenennen zu müssen.

    Das Problem beginnt schon mit jemanden, der eine Datei mit dem Namen "Hallo + 123üöä.jpg" hochlädt. Hier könnte ich zwar per Stringreplace die "Fremdzeichen" rausholen, aber spätestens wenn der User aus China, Japan oder Arabien kommt, habe ich ein Problem.

    Ich dachte zunächst mit der utf8_encode-Funktion komme ich weiter, aber bei der japanischen Grafikdatei bekomme ich dann nur noch 28????????.jpg angezeigt, was vom Server nicht verarbeitbar ist.

    Wie könnte ich das Problem lösen?


    Gruß
    Dennis



    EDIT:
    Ok - ich habe zwar keine RICHTIGE Lösung gefunden, aber ein Workaround :)

    Für mich sieht das so aus:

    1. $dateiname = str_replace(" ", "", $datein);

    Leerzeichen entfernen


    2. $dateiname = mb_convert_encoding($dateiname,"HTML-ENTITIES","auto");

    Alle nicht Latin-Zeichen in ? umwandeln (klappt zumindest bei Tests mit Kyrillisch und Japanisch


    3. $dateiname = str_replace(array('<', '>', '', '/', '=', '+', '*', '#', '?', '§', '&', '(', ')'), "", $dateiname);

    Alle Sonderzeichen werden rausgefiltert. Dabei wird das ? auch schlichtweg gelöscht.
    Da eh eine Unique-ID vorgehängt wird, macht es nichts, dass der Dateiname selber bei rein (z.B.) kyrillischen Zeichensätzen verschwindet.
     
    DieTa, 19.03.2007
  2. Sojus

    SojusMacUser Mitglied

    Mitglied seit:
    30.05.2006
    Beiträge:
    143
    Zustimmungen:
    3
    Sojus, 20.03.2007
Die Seite wird geladen...
Ähnliche Themen - Umgang anderen Zeichentabellen
  1. max@hismac
    Antworten:
    2
    Aufrufe:
    1.854
    nightcoding
    02.06.2012
  2. Waldfee123
    Antworten:
    2
    Aufrufe:
    1.228
    rm -r *
    01.12.2010
  3. finarfin
    Antworten:
    0
    Aufrufe:
    1.161
    finarfin
    06.06.2010
  4. Jakob
    Antworten:
    3
    Aufrufe:
    653
  5. maceis
    Antworten:
    16
    Aufrufe:
    1.702