Autor Zpráva
Jack06
Profil
Zdravím, chci se zeptat na následující. Potřebuju provést zálohu obrázků, ale také potřebuji, aby v názvu souboru byla možná diakritika.
Když běžně soubor zkopíruji:
copy(old, new); či přejmenuji rename(old, new);
tak i přesto, že stránka je v utf-8, když si dám echo nového názvu, tak je jak má být s diakritikou, se mi ten soubor uloží s paznakama a ne tak jak jsem chtěl. Proto se ptám zkušenějších, jak dosáhnout vytvoření (zkopírování) souboru s cílovým názvem obsahujícím diakritiku.

To, že bych měl soubory radši psát bez diakritiky je mi jasné, ale pro účely využití to bohužel nejde.

Díky za rady
Keeehi
Profil
Jack06:
účely využití to bohužel nejde.
Jste si jistý? Co třeba soubory přejmenovat na 0001.xxx, 0002.xxx, 0003.xxx a v databázi mít uloženo, že 0001.xxx je příliš.doc, 0002.xxx je žluťoučký.jpg, 0003.xxx je kůň.pdf?
Jack06
Profil
Potřebuji ty soubory předat jako fotky dalšímu člověku a ten to chce právě takto :-) takže opravdu věřte že nejde. Kdyby to šlo, tak bych to udělal. Já to mám uložené u sebe bez diakritiky a hashuji jména, ale oni to chtějí pojmenovat podle určitých sloupců v db a ty mají diakritiku. DB mám pouze já oni ne. Takže asi tak :-)
Keeehi
Profil
Jack06:
A to předání má vypadat jak? Vlezete na FTP, fotky stáhnete, zabalíte a pošlete třeba jako přílohu? Nebo jak by to mělo vypadat?
Jack06
Profil
Mám svůj web, kde mám nějaké produkty a jejich fotky. Je firma, která chce s těmi fotkami pracovat v můj prospěch, ale vyžádali si aby se fotky jmenovali podle kategorie a parametru - ten parametr má diakritiku. Předávat to budu na DVD.

Je celkem jedno jak to bude vypadat Potřebuji prostě vytvořit soubor s diakritikou. A jestliže při uploadu mohu číst diakritiku, tak proč bych nemohl soubor zapsat s diakritikou. Jen se mi to nedaří :-D
Keeehi
Profil
Tak třeba pro stáhnutí obrázku i s diakritiku byste mohl využít toto:
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=$nazev_s_diakritiou");
readfile($aktualni_nazev_souboru);
Jack06
Profil
Já mám ten obrázek uložen třeba takto:
1sad56f4sa86d51fs6a5df4sa51df.jpg

, ale potřebuji ho stáhnout jako

ěščřžýáíé.jpg

:-) Web mám na localu, takže mi nedělá problém použít nějaké funkce. Těch souborů je stovky a všechny potřebuju přejmenovat :-)
Keeehi
Profil
Takže něco takového:
while($radek = mysql_fetch_array($vysledek)) {
    file_put_contents("./export/".$radek["vysledene_jmeno"],file_get_contents("./uloziste/".$radek["aktualni_jmeno"]));
}
Jack06
Profil
ano, ale to neudrží diakritiku..
joe
Profil
Je třeba si překonvertovat název souboru do správného kódování:

$filename =  iconv("UTF-8", "CP1250", "můjnázevsouboruščřžýáíé.bck");
$content = "muj obsah";
file_put_contents($filename, $content);
Jack06
Profil
Lol nakonec vyřešeno tak, že jsem nastavil hlavičku na windows-1250 a set names na cp1250, a frčí to :-) Ikdyž v db jsou utf8 data :-D


o a nebo tak joe, ještě zkusím :-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: