Hallo,
ich bin gerade dabei mich wieder vermehrt mit PHP zu befassen und das wollte ich mit einen Bild-Upload-Script als Beispiel. Eigentlich wollte ich eine Bilderhostingseite betreiben, aber habe mir das anders überlegt und möchte mich doch lieber nur mit PHP beschäftigen.
Aktuell ist mein Script so aufgebaut, dass die Datei noch nicht hochgeladen wird, sondern lediglich ein paar Variablen ausgeben werden, die ich später in einer Datenbank speichern möchte.
Mein Script sieht so aus:
Aktuelles Problem: Ich möchte den Dateinamen so ändern, dass keine Zahlen, Leerzeichen, Sonderzeichen, Umlaute und keine Großbuchstaben mehr darin vorkommen. Der Dateiname soll nur noch aus Kleinbuchstaben und "_" als Ersatz für Leerzeichen bestehen.
So sieht mein Versuch aus:
Die Zeilen machen die Großbuchstaben zu Kleinbuchstaben und Zahlen werden gelöscht. Aber die Umlaute werden nicht ersetzt. Woran liegts? Oder gibt es eine einfache Methode (spezielle PHP-Funktionen o.ä.)?
ich bin gerade dabei mich wieder vermehrt mit PHP zu befassen und das wollte ich mit einen Bild-Upload-Script als Beispiel. Eigentlich wollte ich eine Bilderhostingseite betreiben, aber habe mir das anders überlegt und möchte mich doch lieber nur mit PHP beschäftigen.
Aktuell ist mein Script so aufgebaut, dass die Datei noch nicht hochgeladen wird, sondern lediglich ein paar Variablen ausgeben werden, die ich später in einer Datenbank speichern möchte.
Mein Script sieht so aus:
PHP:
dateityp = GetImageSize($_FILES['datei']['tmp_name']);
// $dateityp[2] = 1 -> gif
// $dateityp[2] = 2 -> jpg
// $dateityp[2] = 3 -> png
// $dateityp[2] = 4 -> swf
// $dateityp[2] = 0 - kein Bild
$filename = $_FILES['datei']['name'];
if($dateityp[2] == 1) $filetype = "gif";
elseif($dateityp[2] == 2) $filetype = "jpg";
elseif($dateityp[2] == 3) $filetype = "png";
$uploadtime = time();
$ip = $_SERVER["REMOTE_ADDR"];
echo "filename: ".$filename."<br>filetype: ".$filetype."<br>uploadtime: ".$uploadtime."ip: ".$ip;
Aktuelles Problem: Ich möchte den Dateinamen so ändern, dass keine Zahlen, Leerzeichen, Sonderzeichen, Umlaute und keine Großbuchstaben mehr darin vorkommen. Der Dateiname soll nur noch aus Kleinbuchstaben und "_" als Ersatz für Leerzeichen bestehen.
So sieht mein Versuch aus:
PHP:
// Dateiname pruefen
$filename = strtolower($filename);
$ersetzen = array('Ä' => 'ae', 'ä' => 'ae', 'Ü' => 'ue', 'ü' => 'ue', 'Ö' => 'oe', 'ö' => 'oe', '0' => '', '1' => '', '2' => '', '3' => '', '4' => '', '5' => '', '6' => '', '7' => '', '8' => '', '9' => '');
$filename = strtr($filename, $ersetzen);