Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Alisson Ferreira

'str_replace' dor de cabeça

Recommended Posts

<?php

$acentos = array('á', 'Á', 'à', 'À', 'â', 'Â', 'ã', 'Ã', 'é', 'É', 'ê', 'Ê', 'í', 'Í', 'ó', 'Ó', 'ô', 'Ô', 'õ', 'Õ', 'ú', 'Ú', 'ç', 'Ç');
$entidades = array('á', '&Aaacute;', 'à', 'À', 'â', 'Â', 'ã', 'Ã', 'é', 'É', 'ê', 'ê', 'í', 'Í', 'ó', 'Ó', 'ô', 'Ô', 'õ', 'Õ', 'ú', 'Ú', 'ç', 'Ç');
$titulo = str_replace($acentos, $entidades, $_POST['titulo']);
$variavel = $_POST['variavel'];
$descricao = str_replace($acentos, $entidades, $_POST['descricao']);
$local = $_POST['local'];
$ordem = $_POST['ordem'];
if(empty($_GET['editar']))
{
mysql_connect("localhost", "***", "****");
mysql_select_db("**");
// Montamos a consulta SQL
$query = "INSERT INTO pg_estaticas (titulo, valor, descricao, local, ordem) VALUES ('".$titulo."', '".$variavel."', '".$descricao."', '".$local."', '".$ordem."')";
// Executa a query
$inserir = mysql_query($query);
}
	?>

Pessoal o script acima deveria introduzir dentro do BD dentre outras, as variáveis título e descrição com seus acentos subtituídos pela entidades HTML, mas isso não está acontecendo. Com suas experiências, alguém pode me dizer o que está acontecendo :(

Compartilhar este post


Link para o post
Compartilhar em outros sites


<?php

$titulo = 'á estou Téstando mõurou';

$acentos = array('á', 'Á', 'à', 'À', 'â', 'Â', 'ã', 'Ã', 'é', 'É', 'ê', 'Ê', 'í', 'Í', 'ó', 'Ó', 'ô', 'Ô', 'õ', 'Õ', 'ú', 'Ú', 'ç', 'Ç');

$entidades = array( htmlentities('á'), htmlentities('Á'), htmlentities('à'), htmlentities('À'), htmlentities('â'), htmlentities('Â'), htmlentities('ã'), htmlentities('Ã'), htmlentities('é'), htmlentities('É'), htmlentities('ê'), htmlentities('ê'), htmlentities('í'), htmlentities('Í'), htmlentities('ó'), htmlentities('Ó'), htmlentities('ô'), htmlentities('Ô'), htmlentities('õ'), htmlentities('Õ'), htmlentities('ú'), htmlentities('Ú'), htmlentities('ç'), htmlentities('Ç'));

$conv = str_ireplace($acentos, $entidades, $titulo);

 

echo $conv ;

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites


<?php

$titulo = 'á estou Téstando mõurou';

$acentos = array('á', 'Á', 'à', 'À', 'â', 'Â', 'ã', 'Ã', 'é', 'É', 'ê', 'Ê', 'í', 'Í', 'ó', 'Ó', 'ô', 'Ô', 'õ', 'Õ', 'ú', 'Ú', 'ç', 'Ç');

$entidades = array( htmlentities('á'), htmlentities('Á'), htmlentities('à'), htmlentities('À'), htmlentities('â'), htmlentities('Â'), htmlentities('ã'), htmlentities('Ã'), htmlentities('é'), htmlentities('É'), htmlentities('ê'), htmlentities('ê'), htmlentities('í'), htmlentities('Í'), htmlentities('ó'), htmlentities('Ó'), htmlentities('ô'), htmlentities('Ô'), htmlentities('õ'), htmlentities('Õ'), htmlentities('ú'), htmlentities('Ú'), htmlentities('ç'), htmlentities('Ç'));

$conv = str_ireplace($acentos, $entidades, $titulo);

 

// guarda no banco $conv

echo $conv;

// imprimir na tela para apresentar

echo html_entity_decode($conv) ;

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está criando um problema para corrigir esconder outro.

 

Primeiramente, não faz sentido o que está fazendo pois bastaria usar a função apropriada: http://php.net/htmlentities

De qualquer forma, o problema maior é converter os caracteres especiais em htmlentities para resolver questões de acentuação/encode, etc. Isso é completamente errado.

 

O certo é configurar o ambiente.

Algumas dicas no tópico: http://forum.imasters.com.br/topic/340459-php-html-mysql-charset-encoding/

 

 

[off]

O post #2...

mano.. quê que é isso ?

 

Não via coisa tão bizarra desde a época do sitenovo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.