Apenas Eu 13 Denunciar post Postado Fevereiro 18, 2015 Olá! Eu tenho um problema com a compatibilidade da pagina html com o banco de dados mysql. Eu consegui resolver o problema com a dica de um colega aqui do fórum que sugeriu fazer isso: echo utf8_encode($string) O que eu gostaria de saber se tem como usar este comando sem a necessidade de colocar utf8 em toda as linhas. Por exemplo: echo utf8_encode($string) // assim nao //e nem assim: $string = utf8_encode ($row=['string']) $string1 = utf8_encode ($row=['string1']) $string2 = utf8_encode ($row=['string2']) A ideia seria fazer este comando só uma vez em uma linha sem a necessidade de colocar ele linha por linha, entendeu a ideia? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 18, 2015 Não tem jeito. Se o banco de dados está em outra codificação, terá de chamar utf8_encode onde for necessário. O que pode agilizar um pouco é criar uma função que percorre o array $row e aplica a função utf8_encode em todos os seus elementos. Veja estes exemplos: http://php.net/manual/pt_BR/function.utf8-encode.php#75422 https://gist.github.com/maggo/1414988 Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Fevereiro 18, 2015 Já tentou colocar no DSN a codificação? Se sim e não funcionou, não tem jeito, é como o Beraldo falou. Compartilhar este post Link para o post Compartilhar em outros sites
Apenas Eu 13 Denunciar post Postado Fevereiro 18, 2015 Não tem jeito. Se o banco de dados está em outra codificação, terá de chamar utf8_encode onde for necessário. O que pode agilizar um pouco é criar uma função que percorre o array $row e aplica a função utf8_encode em todos os seus elementos. Veja estes exemplos: http://php.net/manual/pt_BR/function.utf8-encode.php#75422 https://gist.github.com/maggo/1414988 Oláaa!! Eu acho que só consegui entender o link 2. Eu acho que se fosse o meu caso, faríamos: <?php function array_encode(&$arr){ array_walk_recursive($arr, function(&$val, $row){ $val = utf8_encode($val); }); return $arr; } De qualquer forma esse script faz no arquivo de conexão ou no próprio arquivo que lê o BD? Já tentou colocar no DSN a codificação? Se sim e não funcionou, não tem jeito, é como o Beraldo falou. Oláa!! Então eu até tentei isso, mas acho que fiz errado porque não funcionou hehehe, mas posso tentar de novo. Esse script parece ser mais fácil que o eu tinha achado ontem na net que era semelhante. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 18, 2015 Eu acho que só consegui entender o link 2. O primeiro link usa recursão. Se você nunca viu isso, terá dificuldades mesmo. Procure ler sobre Recursão. É muito útil. De qualquer forma esse script faz no arquivo de conexão ou no próprio arquivo que lê o BD? Isso é uma função. Você deve declará-la em um arquivo de funções, que será incluído onde for necessário. Depois basta chamar essa função onde os dados fores lidos, para aplicar na variável $row, por exemplo Compartilhar este post Link para o post Compartilhar em outros sites
Apenas Eu 13 Denunciar post Postado Fevereiro 18, 2015 Ola Beraldo... obrigado pelas dicas, Eu entendi, mas se a nossa variavel (a que eu preciso) for se chamar $row, eu apliquei ela da forma correta no exemplo que eu postei? <?php function array_encode(&$arr){ array_walk_recursive($arr, function(&$val, $row){ $val = utf8_encode($val); }); return $arr; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 18, 2015 O código do link é só a implementação da função. Não precisa mexer em nada ali. Apenas chame essa função, desta forma: array_encode( $row ); Compartilhar este post Link para o post Compartilhar em outros sites
Apenas Eu 13 Denunciar post Postado Fevereiro 18, 2015 Blz...entendi...eu vou tentar la...muito obrigado em Compartilhar este post Link para o post Compartilhar em outros sites
cesaroet 0 Denunciar post Postado Fevereiro 20, 2015 tenho esse mesmo problema na pagina de conexão coloquei da seguinte forma e funciona que é uma beleza <?php header('Content-Type: text/html; charset=utf-8'); $conexao = mysql_connect("localhost","root","senha"); $conecta = mysql_select_db("sistema",$conexao); mysql_query("SET NAMES 'utf8'"); mysql_query('SET character_set_connection=utf8'); mysql_query('SET character_set_client=utf8'); mysql_query('SET character_set_results=utf8'); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Apenas Eu 13 Denunciar post Postado Fevereiro 20, 2015 Olá Cesaroet, tudo bem? Eu acho que tentei fazer isso mas não funcionou. De qualquer forma eu vou tentar de novo. As outras dicas, uma não surtiu efeito e a outra eu acho que não entendi bem daí nem funcionar funcionou.... Obrigado a todos por enquanto.... -- Deu certo a dica acima. Acho que não dava antes (das outras dicas) por causa duma função de upload de imagem que tinha la junto. Eu não sei ela vai funcionar bem, mas mais para frente eu testo Muuuito obrigado novamente Compartilhar este post Link para o post Compartilhar em outros sites