Autor | Zpráva | ||
---|---|---|---|
Mr.Puschkin Profil * |
#1 · Zasláno: 9. 2. 2009, 08:59:34
Dobrý den!
Nevíte někdo jak uložit generovaný php soubor do UTF-8 místo do ANSI do kterého se ukládá automaticky? <? //generování php souboru pro download $soubor = fopen("cesta.php", "w"); fwrite($soubor, "<? include \"main/header.php\"; ?> <h1>Nadpis stránky</h1> <p><a href=\"$nazev_souboru\">$nazev_souboru<br></a></p> <? include \"main/footer.php\"; fclose(\$soubor); "); |
||
bohyn Profil |
#2 · Zasláno: 9. 2. 2009, 11:32:11 · Upravil/a: bohyn
Mr.Puschkin
fwrite() je binarne bezpecny (na Win je treba pro binarni operace pridat do modu pismeno "b" viz. manual, ale s UTF-8 jsem na Win nemel problemy ani bez nej) takze zapise to co mu posles. Pokud ti to zapisuje v jinem kodovani nez chces, tak muzes pouzit funkci mb_convert_encoding() nebo opravit kodovani vstupu (pokud muzes). |
||
Mr.Puschkin Profil * |
#3 · Zasláno: 9. 2. 2009, 12:10:37
bohyn
Jde o to, že uploaduju soubor (např *.zip) a s ním i vygenerovaný php soubor který na soubor .zip odkazuje(pouze link na download).Pokud ale je v generovaném php odkazu diakritika(např. počítač.zip) tak ten link je nefunkční a písmena s příslušnou diakritikou jsou "rozsypána"(IE6).Pokud ale vygenerovaný soubor *.php přes poznámkový blok "přeuložím" z kódování ANSI do UTF-8 tak se všechno chová dobře.Proto bych potřeboval tyto soubory *.php ukládat přímo do UTF-8...??? Jinak řeším ještě jeden problém:pokud uploaduju soubor s názvem v azbuce, uloží se na server v ASCI kódu.Jde to nějak ošetřit? Děkuji |
||
bohyn Profil |
#4 · Zasláno: 9. 2. 2009, 12:41:15 · Upravil/a: bohyn
|
||
Mr.Puschkin Profil * |
#5 · Zasláno: 9. 2. 2009, 17:48:01
bohyn
Děkuji za snahu ale asi si ještě stále nerozumíme... PSPad používám ale jde o to, že upload probíhá též přes php(http).Takže: . . . 1.php kód(nadpis apod) . . . 2.script pro upload souboru(na stránce tlačítko "procházet", "nahrát",....) . . . 3.generování php souboru s odkazem ke stažení na uploadovaný soubor . . . 4.PHP kód(velikost uploadovaného souboru apod) . . V PSPadu mám kódování windows (CP1250), takže text na stránce apod(bod č.1) se zobrazuje správně ale generovaný php soubor se ukládá do ANSI takže tam je již zmiňovaný problém s diakritikou při stažení uploadovaného souboru.Když v PSPadu nastavím UTF-8 tak se generovaný php soubor do tohoto kódování uloží a link na uploadovaný soubor funguje správně(i s diakritikou) ale zase mi to "rozsypává" text na stránce s uploadem(bod č.1 a č.4).Nepomáhají mi ani vsuvky <meta>. |
||
bohyn Profil |
#6 · Zasláno: 9. 2. 2009, 18:27:09 · Upravil/a: bohyn
Mr.Puschkin
„Nepomáhají mi ani vsuvky <meta>“ Zkus jeste pridat: <? header("Content-Type: text/html; charset=UTF-8"); ?> Nektere servery automaticky odesilaji kodovani v hlavickach a to muze byt problem. Vyzkousel bych napred toto, nez se poustet do nejakeho predovani. „ale generovaný php soubor se ukládá do ANSI“ Samo se to neprekoduje, takze je v tom samem kodovani jako vstupy. Problem je asi v tom ze snazis zobrazit windows1250 jako utf-8. Prekodovani se provadi pres fci mb_convert_encoding() jak uz sem psal nahore. $vysledek = mb_convert_encoding($vstup, "vystupni_kodovani", "vstupni_kodovani"); Edit: opraveno poradi parametru |
||
Mr.Puschkin Profil * |
#7 · Zasláno: 10. 2. 2009, 07:23:23
bohyn
<? header("Content-Type: text/html; charset=UTF-8"); ?> bohužel nepomáhá... Když zkusím překódování na localhostu: <? $vstup="C:/wamp/www/1.php"; $vysledek = mb_convert_encoding($vstup, "ANSI", "UTF-8"); ?> tak mi to vrací: Warning: mb_convert_encoding() [function.mb-convert-encoding]: Unknown encoding "ANSI" in C:\wamp\www\test3.php on line 3 |
||
bohyn Profil |
#8 · Zasláno: 10. 2. 2009, 14:42:56
Mr.Puschkin
Protoze ANSI neni zadne kodovani (kdyztak ASCII, ale v tom to kodovane nebude :) ). Misto ANSI dej "windows-1250" jestli to nepomuze tak "ISO-8859-2". Jeste se mi prohodily 2. a 3. parametr, moje chyba. Takze by to melo byt: $vstup=file_get_contents("C:/wamp/www/1.php"); $vysledek = mb_convert_encoding($vstup, "UTF-8", "windows-1250"); |
||
Časová prodleva: 16 let
|
0