Gurzi Posted December 22, 2006 at 03:04 AM Report #71867 Posted December 22, 2006 at 03:04 AM Boas malta. Ouvi dizer e tem lógica que seja verdade que uma comparação é feita mais rapidamente se for feito ao inteiro ao invés de ser feito ao char. O que quero dizer é isto. if( $a == $😞 em que $a e $b são um 'char' a condição ficava mais rápida se ambos fossem um inteiro. O meu problema é, quero fazer um conversor de caracteres marados para html aqueles tipo (ç, à, é, ì, â, ã) mas como posso fazer os testes com valores inteiros destes rapazes ? Obrigado
djthyrax Posted December 22, 2006 at 03:20 AM Report #71869 Posted December 22, 2006 at 03:20 AM echo ord($chr); ou $arr=array(); for($i=0;$i<strlen($str);$i++) $arr[]=ord($str{$i}); Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!
Rui Carlos Posted December 22, 2006 at 09:57 AM Report #71882 Posted December 22, 2006 at 09:57 AM Boas malta. Ouvi dizer e tem lógica que seja verdade que uma comparação é feita mais rapidamente se for feito ao inteiro ao invés de ser feito ao char. por acaso também já ouvi dizer que em muitas situações trabalhar com int's é mais eficiente, mas esta não me parece uma delas. comparar dois char's significa, na pior das hióteses comparar 8 bits enquanto que para os inteiros podemos ter que comparar 32 bits. por isso parece-me estranho que a coparação de inteiros seja mais eficiente do que a comparação de char's (mas posso estar enganado!!!). Rui Carlos Gonçalves
pedrotuga Posted December 22, 2006 at 10:50 AM Report #71890 Posted December 22, 2006 at 10:50 AM O primeiro raciocinio que faço nestes casos é sempre do tipo do que o rui carlos fez, os computadores só entendem zeros e uns, por isso qq que seja o tipo de variável estamos sempre a falar de um determinado número de zeros e/ou uns. No entanto penso que essa informação por si só não é suficiente. Se tens caracteres compara caracteres, estares a converter para depois comparares só vais tar a gastar mais tempo pois vais reendereçar e copiar valores. Para alem disso o PHP dá conta de conversões de tipos de variáveis quando necessário. Numa linguagem deste tipo este tipo de discussão não faz muito sentido. A isto há ainda a acrescentar a hipótese introdução de ambiguidades que aparecem quando menos se espera. Mas depois de tanta conversa... o php tem uma função que se chama htmlentities() checka o manual
Gurzi Posted December 22, 2006 at 12:58 PM Author Report #71914 Posted December 22, 2006 at 12:58 PM O problema é que esses caractéres marados não estão na Lista ASCII , ou seja eu para fazer um echo de um ç de cedilha tenho que usar o html, mas isso não me ajuda, porque queria era saber como era lido, tipo o utilizador vai escrever carroça e achas que ele está preocupado se o script lê ou não ç ? Mas se tu fizeres echo "~"; ele não dá nada..
jreis Posted December 22, 2006 at 02:40 PM Report #71932 Posted December 22, 2006 at 02:40 PM Pois, mas usando o hmtlentites() na variavel em causa, nao tens de te preocupares com nada disso. Depende de como queres usar a variavel. Se for para mandar para javascript, p.ex., podes ter alguns problemas com isto. Terás de usar um encoding UTF-8, se não estou em erro. Se for para guardar dados inseridos e depois mostrá-los (sendo guardados numa base de dados ou qualquer coisa assim, etc.), deve resolver o problema. Um exemplo do que queres fazer exactamente e quais os problemas encontrados seria útil para podermos ajudar melhor. "Pensa positivo: tudo pode piorar"
pedrotuga Posted December 22, 2006 at 05:02 PM Report #71965 Posted December 22, 2006 at 05:02 PM Gurzi, isto é das coisas mais confusas. O ASCII já lá vai há muuuuuuuuuuuuuito tempo. Hoje em dia usam-se charsets baseados no ascii mas que já são muitas gerações a frente. O unicode por exemplo vai ter suporta para as linguas ocidentais todas, no, mesmo código 😞. Não estou muito a par disto. Penso que o unicode, na sua versão actual é o que se designa por UTF-8. Ninguem usa ascii hoje em dia. Escolhe um charset compatível com a nossa lingua, eu aconselho utf-8, e sempre que enviares texto para um output html usa a função htmlentities.
jreis Posted December 22, 2006 at 05:22 PM Report #71969 Posted December 22, 2006 at 05:22 PM Atenção, UTF-8 não é um charset, mas sim um encoding. São coisas independentes, um charset designa os caracteres existentes, o encoding designa a sua representação. Isto é um bocado confuso (lol ainda não percebi muito bem esta questão toda!), mas parece ser uma diferença importante. Aparentemente, 1 determinado caractere, independentemente do charset será sempre representado da mesma forma quando codificado com UTF-8. Isto ao nível de armazenamento, em hex. Também não percebo bem disso, foram umas noções que apanhei pesquisando por aí. Se houver alguma alma caridosa que esteja disposta a esclarecer o assunto, faça favor. "Pensa positivo: tudo pode piorar"
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now