Autor | Zpráva | ||
---|---|---|---|
user243 Profil |
#1 · Zasláno: 25. 12. 2012, 07:33:39
hoj,
pří úpravě jednoho scriptu jsem narazil na problém, kdy mi při úpravě delšího řetězce (například dvě věty) funkce htmlspecialchars() nevrátila vůbec nic; u jednoduché slova (například "blbost") šlo vše bez problému; php mi nenapsalo žádné varování, ani upozornění; řetězec jsem upravoval takto: $zprava = htmlspecialchars($zprava); echo htmlspecialchars($zprava); nakonec jsem musel zadat všechny parametry, aby to delší řetězec "přežil": $zprava = htmlspecialchars($zprava, ENT_QUOTES, "cp1251"); může za to rozdílná verze php? na manuálu jsem si nějakého upozornění nevšiml; díky |
||
Alphard Profil |
#2 · Zasláno: 25. 12. 2012, 10:45:15
Na 5.4 nepozoruji problém, ale z vašeho popisu mi není zřejmé, co vlastně nejde. Můžete dát konkrétní případ, co vám nefunguje?
K tomu vašemo kódu snad jen poznámka, že u nás by bylo lepší se držet cp1250, když už chcete cp*. Já už nedělám v ničem jiném než utf-8. |
||
user243 Profil |
#3 · Zasláno: 25. 12. 2012, 11:15:52
na localhostu mi nejde použít htmlspecialchars() na delším řetězci bez toho, aby výsledný text zmizel, chová se to, že bez použití parametru je proměnná jen prázdný řetězec; cp1250 není podporovaný charset pro tuto funkci; utf-8 nemám rád, protože mi to vždy vše rozbije, schválně jsem jej zkusil dát jako charset místo cp1251 a výsledek byl zase prázdný řetězec; možná je to tím, že všechny soubory jsou uložené v ascii, ale mně to tak vyhovuje;
|
||
Davex Profil |
#4 · Zasláno: 25. 12. 2012, 11:36:45
user243:
Od verze PHP 5.4 je jako výchozí kódování funkce htmlspecialchars() nastaveno UTF-8 (místo původního ISO-8859-1), a pokud mu dáváš na vstupu jiné kódování, tak tam mohou vzniknout z pohledu UTF-8 neplatné sekvence a z bezpečnostních důvodů je vrácen prázdný řetězec (viz popis návratové hodnoty v dokumentaci).
|
||
user243 Profil |
#5 · Zasláno: 25. 12. 2012, 13:13:14
aha, děkuji;
|
||
Časová prodleva: 11 let
|
0