Frage zu preg_replace!

Hallo Leute,

bei meinen Upload-Script möchte ich prüfen, welche Dateien hochgeladen werden… und diese in Klammern setzen! (Zwecks Sicherheit, damit die Dateien nicht zur Ausführung kommen!) Das klappt eigentich ganz gut!

Eigentlich!

Bei „.html“-Dateien klappts leider nicht!
Er wandelt z.b. „index.html“ in „index.(htm)l“ um… er sollte aber
index.(html) daraus machen!!!

Hat vielleicht jemand eine Idee??

Hier der Quelltext:

$zeichen = Array("/ä/","/ö/","/ü/","/Ä/","/Ö/","/Ü/","/ß/","/ /","/&/","/.php/","/.htm/","/.html/","/.js/","/.cgi/");
$ersetzen = Array(„ae“,„oe“,„ue“,„Ae“,„Oe“,„Ue“,„ss“,"_","_und_",".(php)",".(htm)",".(html)",".(js)",".(cgi)");
$ziel = preg_replace($zeichen, $ersetzen, $pfad.$_FILES[„datei“][„name“][$i]);

Gruß, Andreas

Hallo

bei meinen Upload-Script möchte ich prüfen, welche Dateien
hochgeladen werden… und diese in Klammern setzen! (Zwecks
Sicherheit, damit die Dateien nicht zur Ausführung kommen!)
Das klappt eigentich ganz gut!
Bei „.html“-Dateien klappts leider nicht!
Er wandelt z.b. „index.html“ in „index.(htm)l“ um… er sollte
aber
index.(html) daraus machen!!!

Hat vielleicht jemand eine Idee??
Hier der Quelltext:
$zeichen = Array("/ä/","/ö/","/ü/","/Ä/","/Ö/","/Ü/","/ß/","/
/","/&/","/.php/","/.htm/","/.html/","/.js/","/.cgi/");
$ersetzen =
Array(„ae“,„oe“,„ue“,„Ae“,„Oe“,„Ue“,„ss“,"_","_und_",".(php)",".(htm)",".(html)",".(js)",".(cgi)");
$ziel = preg_replace($zeichen, $ersetzen,
$pfad.$_FILES[„datei“][„name“][$i]);

Hast Du ja schon fast hinbekommen. Ich würds etwas
systematischer angehen, also das drumherum leicht
verändern:

...

$ze = Array(
 '/ä/' =\> 'ae',
 '/ö/' =\> 'oe',
 '/ü/' =\> 'ue',
 '/Ä/' =\> 'Ae',
 '/Ö/' =\> 'Oe',
 '/Ü/' =\> 'Ue',
 '/ß/' =\> 'ss',
 '/ /' =\> '\_',
 '/&/' =\> '\_und\_',
 '/\.(php|html?|js|cgi)$/' =\> '.(\1)'
 );

for($i=0; $i $file 
\n";
}

...

Dein Problem mit dem ‚html‘ lag einfach daran, daß
Du keinen „Endanker“ ‚$‘ verwendet hast, daher hat
der reguläre Ausdruck, als er ‚htm‘ gesucht hat, auch
das ‚htm‘ in ‚html‘ gefunden und ersetzt.

Grüße

CMБ

Hallo Semjon,

danke für die super Idee !!! Vielen Dank!!!
Gruß, Andreas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]