MaurerDig: Dateinamen richtig kodieren/erstellen

Hallo Ihr!

Mein Dateiname wird wie folgt erstellt:
$dateiname = $counter.'_'.$_POST['x'].'_'.$_POST['y'].'_'.$_POST['z'].'.zip';

$_POST['x'] enthält auch mal ein PLUS-Zeichen (+). Mein Server läuft komplett auf utf8 und Windows 2003 Server.

Speichere/Erstell ich nun die Zip mit PHP:
$archive = new PclZip("temp/zips/$dateiname");
oder
$archive = new PclZip('temp/zips/'.$dateiname);

Erstellt er mir diese wegen des + Zeichens nicht.
dateiname enthält z.b. 00011_x+x_yy_zz.zip

Das + Zeichen ist erwünscht und eigentlich darf es auch im Windows Dateinamen enthalten sein.

Hat jemand eine Idee woran das liegen könnte?

Mit rawurlencode($dateiname) speichert er immerhin die Datei, aber da es kein Unix System ist sieht der Name der Datei im Ordner dann so aus (bsp.):

00011_x%2Bx_yy_zz.zip
also %2B anstatt +

Regards,
Dig

  1. hi,

    Speichere/Erstell ich nun die Zip mit PHP: [...]
    Erstellt er mir diese wegen des + Zeichens nicht.
    dateiname enthält z.b. 00011_x+x_yy_zz.zip

    Das + Zeichen ist erwünscht und eigentlich darf es auch im Windows Dateinamen enthalten sein.

    Und was macht "er" stattdessen?

    Mit rawurlencode($dateiname) speichert er immerhin die Datei, aber da es kein Unix System ist sieht der Name der Datei im Ordner dann so aus

    Was soll das mit Unix-System oder nicht zu tun haben?

    rawurlencode kodiert URL-gerecht. Zum Dateisystem besteht hinreichend wenig Zusammenhang.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Und was macht "er" stattdessen?

      Er speichert die Datei erst gar nicht, zudem bekomme ich keine Fehlermeldung.

      Was soll das mit Unix-System oder nicht zu tun haben?
      rawurlencode kodiert URL-gerecht. Zum Dateisystem besteht hinreichend wenig Zusammenhang.

      Okay, hast du eine Idee das + Zeichen da trotzdem reinzubekommen dass es richtig dargstellt wird (unter mac/windows)?