O problema é que o str_replace em vez de substituir somente os caracteres da string dada ele tambem substitui os caracteres ja substituidos, ou seja:
Digamos que a string dada é:
Oi, tudo bem?
Ela deveria ficar:
%252echr(79)%252echr(105)%252echr(44)%252echr(32)%252echr(116)%252echr(117)%252echr(100)%252echr(111)%252echr(32)%252echr(98)%252echr(101)%252echr(109)%252echr(63)
Mas como cada caractere ja substituido é substituido de novo fica:
Não caberia num post por isso não botei mas acho que vocês ja tem a ideia :P
Bom gostaria de que os str replaces mudassem na primeira variavel e não na mais recente...
Aqui o codigo da minha pagina: (não está completa eu parei quando precebi que não ia funcionar)
<?php $text = $_POST['text']; if (!empty ($text)) { $text = str_replace(' ', '%252echr(32)', $text); $text = str_replace('!', '%252echr(33)', $text); $text = str_replace('"', '%252echr(34)', $text); $text = str_replace('#', '%252echr(35)', $text); $text = str_replace('$', '%252echr(36)', $text); $text = str_replace('%', '%252echr(37)', $text); $text = str_replace('&', '%252echr(38)', $text); $text = str_replace("'", '%252echr(39)', $text); $text = str_replace('(', '%252echr(40)', $text); $text = str_replace(')', '%252echr(41)', $text); $text = str_replace('*', '%252echr(42)', $text); $text = str_replace('+', '%252echr(43)', $text); $text = str_replace(',', '%252echr(44)', $text); $text = str_replace('-', '%252echr(45)', $text); $text = str_replace('.', '%252echr(46)', $text); $text = str_replace('/', '%252echr(47)', $text); $text = str_replace('0', '%252echr(48)', $text); $text = str_replace('1', '%252echr(49)', $text); $text = str_replace('2', '%252echr(50)', $text); $text = str_replace('3', '%252echr(51)', $text); $text = str_replace('4', '%252echr(52)', $text); $text = str_replace('5', '%252echr(53)', $text); $text = str_replace('6', '%252echr(54)', $text); $text = str_replace('7', '%252echr(55)', $text); $text = str_replace('8', '%252echr(56)', $text); $text = str_replace('9', '%252echr(57)', $text); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xml:lang="en" lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Text to Decimal</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> </head> <body> <form method="post" action="<?php echo $PHP_SELF;?>"> Input: <input type="text" name="text" size="20"> <input type="submit" value="submit" name="submit"> </form> <? if (isset($_POST['submit'])) { print "<textarea name='body' rows='8' cols='25'>$text</textarea>"; } ?> </body> </html>