Autor | Zpráva | ||
---|---|---|---|
quiet_user Profil |
#1 · Zasláno: 30. 10. 2010, 17:07:21
Ahoj,
mám formulář, do kterého lidi zadávají zdroj. kód, který ukládám do db a znovu vypisuji. Součástí je i počítání znaků. Rád bych také zjistil velikost těchto kódů, lze to spočítat ze znaků? Nebo mám počítat ještě něco? Jde o zdrojové kódy v jazyce HTML. Děkuji za odpověď. |
||
Radovan789 Profil * |
#2 · Zasláno: 30. 10. 2010, 17:11:37
Jestli se jedná o HTML tak ano lze to spočítat podle počtu znaků jedná se totiž o text v DOS nebo ASCII.
|
||
Radovan789 Profil * |
#3 · Zasláno: 30. 10. 2010, 17:12:09
* ANSI
|
||
quiet_user Profil |
#4 · Zasláno: 30. 10. 2010, 17:19:56
Ovšem, teď jsem to zkoušel manuálně. Vzal jsem nějaký index.html, vzal jeho kód a jeho velikost. Porovnal jsem to s počtem znaků a obě čísla se lišila.
|
||
Radovan789 Profil * |
#5 · Zasláno: 30. 10. 2010, 17:23:21
Otevři si poznámkový blok a vlož do něj nějaký text, potom to udělej podruhé a velikost bude stejná.
|
||
Radovan789 Profil * |
#6 · Zasláno: 30. 10. 2010, 17:25:27
Mělo by ti vyjít že 1 znak = 1 bajt
|
||
Keeehi Profil |
#7 · Zasláno: 30. 10. 2010, 17:29:34
quiet_user:
Záleží na tom, o jaká písmenka se jedná a v jakém kódování je ten soubor uložen. Třeba soubor s obsahem "abcčdď" bude v kódování windows-1250 zabere 6 bajtů, v utf-8 zabere 8 bajtů, Protože na uložení písmenek č a ď jsou potřeba dva bajty. |
||
Davex Profil |
#8 · Zasláno: 30. 10. 2010, 17:29:41 · Upravil/a: Davex
quiet_user:
Počet spočítaných znaků je menší nebo větší než celková velikost? Není náhodou menší přesně o počet řádků v souboru? Asi také bude záležet na tom, jak počítáš znaky - mezery a konce řádků zabírají místo také. |
||
AM_ Profil |
#9 · Zasláno: 30. 10. 2010, 17:43:58
Radovan789:
„text v DOS“ coto? počet znaků v unicode může být menší než celková velikost souboru (některé znaky zabírají více bytů), takže pokud máš text v unicode, odpověď je ne, pokud v jakémkoli kódování s konstantní délkou znaku, odpověď je ano. Jinak ae obecně mnohem větší problém bývá spočítat počet znaků, protože se musí data projít a vyhodnotit, kde jsou znaky proměnné délky, kdežto velikost dat v bytech je většinou programu známá a tedy ji stačí odněkud přečíst. |
||
quiet_user Profil |
#10 · Zasláno: 30. 10. 2010, 18:32:01
AM:
Mohl bych si tedy dovolit uvádět, že 1 znak = 1 bajt a tímto to i definovat a uvádět. Tento soubor je velký přibližně xx kb? Davex: Myslím všechny znaky, včetně mezer. |
||
Yur4Y Profil |
#11 · Zasláno: 30. 10. 2010, 18:40:07
Nešlo by jednoducho použiť strlen('text'), čo by vrátilo veľkosť textu v bajtoch?
|
||
quiet_user Profil |
#12 · Zasláno: 30. 10. 2010, 18:43:17
Chci tam uvést alespoň orientační hodnotu, taky si myslím, že by to šlo a pak to podmínkama dát do přijatelnější hodnoty, jako např. kb. Teď jde o to, jak velký průšvih to bude.
|
||
Yur4Y Profil |
#13 · Zasláno: 30. 10. 2010, 18:55:10
Malo by to byť úplne presné.
|
||
Joker Profil |
#14 · Zasláno: 30. 10. 2010, 18:55:44
quiet_user:
„Mohl bych si tedy dovolit uvádět, že 1 znak = 1 bajt a tímto to i definovat a uvádět.“ Obecně to není pravda. Jak budou znaky reprezentované v paměti (respektive jaký číselný kód v paměti odpovídá jakému znaku) určuje kódování. Například v UTF-16 má každý znak dva bajty. V UTF-8 může jeden znak zabírat 1-4 bajty (pokud jde o text v češtině, tak 1-2 bajty) Yur4Y: „Nešlo by jednoducho použiť strlen('text'), čo by vrátilo veľkosť textu v bajtoch?“ Otázka jestli to je správně. Zamýšlené chování funkce strlen myslím je, že má vracet počet znaků. |
||
quiet_user Profil |
#15 · Zasláno: 30. 10. 2010, 18:57:37
Mno děkuji za reakce, není to teď prioritou projektu, nejspíš vše tedy převedu na bajty a vydělím, abych dostal něco řikající cifru. Zatím děkuji. Kdyby snad někdo věděl více, díky za další info.
|
||
DoubleThink Profil * |
#16 · Zasláno: 30. 10. 2010, 19:56:51
Joker:
„Otázka jestli to je správně. Zamýšlené chování funkce strlen myslím je, že má vracet počet znaků.“ Zamýšlené chování strlen je vracet počet bajtů od začátku řetězce po první \0. Což se přesně děje, pokud nějaký ocas na serveru nezapne mbstring overloading. |
||
quiet_user Profil |
#17 · Zasláno: 30. 10. 2010, 21:08:06
DoubleThink:
takže se to dá použít jako velikost v bajtech? :) |
||
Časová prodleva: 14 let
|
0