move_uploaded_file, problémy i po odstranění diakritiky
Ahoj mám problém s move_uploaded_file v php stránka je v (utf-8 bez BOM), mám windows7,
aby to nebylo moc složité nechám jména souboru $_FILES['fupload']['name'] nahradím písmena s háčky a čárkami za písmena bez nich
funguje to například u "č", "ů", ale u "í", "ň" zase ne
když postnu soubor s "í" a nechám ho nahradit za "i" tak se neuloží a move_uploaded_file vrací false
když nechám bez nahrazování uložit soubor "ň.jpg" uloží se jako "Ĺ.jpg"
když nechám "ň" nahradit za "n" tak se uloží jako "nÂ.jpg"
do databáze (utf-8) se názvy ukládají správně ať už nahrazené nebo s diakritikou
zvláštní je když z databáze načtu jmnéno souboru a dám ho do unlink(); tak se "Ĺ.jpg" i "nÂ.jpg" smažou, ale v <img src="ň.jpg"> se nenačtou
tady je muj kód:
$extpos = strrpos($_FILES['fupload']['name'], ".");
$basename = substr($_FILES['fupload']['name'], 0, $extpos); //odstranění koncovky
$search = array("ě","š","č","ř","ž","ý","á","í","é","ó","ú","ů","ď","ť","ň","Ě","Š","Č","Ř","Ž","Ý","Á","Í","É","Ó","Ú","Ů","Ď","Ť","Ň");
$replace = array("e","s","c","r","z","y","a","i","e","o","u","u","d","t","n","E","S","C","R","Z","Y","A","I","E","O","U","U","D","T","N");
$filename = str_replace($search, $replace, $basename);
$destination = "./images/".$filename.".jpg";
$temp_name = $_FILES['fupload']['tmp_name'];
$copy = move_uploaded_file($temp_name, $destination);
if ($copy == true)
{...}
nevíte co s tím?
jsem nakloněn čemukoliv co mi uloží soubor v nějaké podobě která půjde přečíst v html,, ať s diakritikou nebo bez ní
díky
P.S. když tu ten kod dam do (php) zavorek tak mi to píše že příspěvek je příliš dlouhý.
Už je vyřešeno.
Na zrušení diakritiky u všech písmen funguje:
je to v souboru s utf-8 kódováním, některá písmenka s diakrikou psaná na klávesnici jsou jiná než ta která jsou vidět v názvech souborů v exploreru
-------------------------------------------------- ----------
Na ponechání diakritiky i u souborů uložených na disku:
to samé ale následující kód musí být uložen v ANSI (například v externím souboru x.php a do původního nahrávacího skriptu vložen přes include "x.php")