Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno 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ý.

Předmět Autor Datum
Už je vyřešeno. Na zrušení diakritiky u všech písmen funguje: $basename $search = array("ě","š","č… poslední
Baniš 18.04.2012 21:16
Baniš

Už je vyřešeno.

Na zrušení diakritiky u všech písmen funguje:

$basename
$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);

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")

$search = array("ě","š","č","ř","ž","ý","á","í","é","ó","ú","ů","ď","ť","ň","Ě","Š","Č","Ř","Ž","Ý","Á","Í","É","Ó","Ú","Ů","Ď","Ť","Ň"); 
$replace = array("ě","š","č","ř","ž","ý","á","í","é","ó","ú","ů","ď","ť","ň","Ě","Š","Č","Ř","Ž","Ý","Á","Í","É","Ó","Ú","Ů","Ď","Ť","Ň");

Zpět do poradny Odpovědět na původní otázku Nahoru