Fájl nevének átalakítása
Üdv!
Nos egy olyan dolgot kéne csinálnom, hogy ha valaki feltölt a weblapra egy fájlt akkor annak a nevét átalakítsa hogy szinte minden böngésző letöltse és ha mondjuk word dokumentum akkor azt meg is lehessen, hibátlanul nyitni...
Nos, hogy mire is gondolok?
Arra hogy az átalakított fájlban csak számok betűk (ékezet nélküliek) és aláhúzás jelek meg persze egy pont szerepelhet, de az alap fájlnévben ha van más karakter akkor azt alakítsa át aláhúzás jelre, minden ilyen karaktert.
Azt már elöbb ellenőrzöm hogy hány pont van tehát ha eddig eljutunk akkor mindenképpen csak 1 pont lehet...
Én ezt így probáltam megoldani:csak hát sajnos ezt szinte a végtelenségig írhatnám mire leírom az összes karaktert ami a billentyűzetről beírható, és akkor még csak a billentyűről beszéltem...
Persze most csak annyi kell, hogy a változóban($file_name) lévő karaktert alakítsa át mintha az lenne a fájl neve mondjuk a fájlnév is csak egy változó($_FILES['file']['name']).
Hogy lehetne ezt máshogy, esetleg egyszerűbben, rövidebb és jobb kóddal megoldani?
Gondolom reguláris kifejezés lesz a titok nyitja...
■ Nos egy olyan dolgot kéne csinálnom, hogy ha valaki feltölt a weblapra egy fájlt akkor annak a nevét átalakítsa hogy szinte minden böngésző letöltse és ha mondjuk word dokumentum akkor azt meg is lehessen, hibátlanul nyitni...
Nos, hogy mire is gondolok?
Arra hogy az átalakított fájlban csak számok betűk (ékezet nélküliek) és aláhúzás jelek meg persze egy pont szerepelhet, de az alap fájlnévben ha van más karakter akkor azt alakítsa át aláhúzás jelre, minden ilyen karaktert.
Azt már elöbb ellenőrzöm hogy hány pont van tehát ha eddig eljutunk akkor mindenképpen csak 1 pont lehet...
Én ezt így probáltam megoldani:
<?php
$file_name = "index 2.php";
$converter_strings = array(" ", "á", "é", "í", "ú", "ű", "ó", "ő", "+", "'", "!", "%", "=", "(", ")", "§");
$file_name_new = str_replace($converter_strings, "_", $file_name);
print $file_name_new;
?>
Persze most csak annyi kell, hogy a változóban($file_name) lévő karaktert alakítsa át mintha az lenne a fájl neve mondjuk a fájlnév is csak egy változó($_FILES['file']['name']).
Hogy lehetne ezt máshogy, esetleg egyszerűbben, rövidebb és jobb kóddal megoldani?
Gondolom reguláris kifejezés lesz a titok nyitja...
Egy példa
örök hála, majd ha nagy leszek meghálálom
Jó lesz aztán majd ha sok időm lesz írok egy sajátot...
kössz
a minusz szebb :)
Ez leszedi a kezdő és záró minuszt (így már aláhúzást), ha úgy alakulna a fájlnév.
Kötőjel