Ir para conteúdo

POWERED BY:

Arquivado

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

marcusc

Acentos PHP

Recommended Posts

Fala Fórum,

 

Estou precisando converter caracteres especiais de uma string para HTML entities.

 

Estava dando uma olhada no htmlspecialchars() e no htmlentities() só que pelo que me parece ambas não tem a inteligência em uma string do tipo <a href='#'>áçóê</a> converter somente "áçóê" para entities, preservando assim o código do HTML.

 

Em java eu uso uma classe https://htmlentities.dev.java.net/ que me atende perfeitamente para este requesito.

 

Minha dúvida é: dá pra fazer oq eu preciso com essas funções passando o charset e preservando as tags html, css, etc? Ou eu vou precisar fazer um parse disso?

 

Abs,

 

Marcus Cavalcanti

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ve se isso te ajuda:

 

function tirar_acentos( $dado ) {			// $dado = trim( str_replace( "\'", "", $dado) );			// $dado = str_replace( "'", "", $dado );			$dado = str_replace( "–", "-", $dado );			$dado = str_replace( "ç", "c", $dado );			$dado = str_replace( "Ç", "C", $dado );			$dado = ereg_replace( "[áàâã]", "a", $dado );			$dado = ereg_replace( "[ÁÀÂÃ]", "A", $dado );			$dado = ereg_replace( "[éèê]", "e", $dado );			$dado = ereg_replace( "[ÉÈÊ]", "E", $dado );			$dado = ereg_replace( "[íìîï]", "i", $dado );			$dado = ereg_replace( "[ÍÌÎ]", "I", $dado );			$dado = ereg_replace( "[óòôõ]", "o", $dado );			$dado = ereg_replace( "[ÓÒÔÕ]", "O", $dado );			$dado = ereg_replace( "[úùû]", "u", $dado );			$dado = ereg_replace( "[ÚÙÛ]", "U", $dado );			return $dado;	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala galera,Na verdade eu não preciso retirar os acentos, e sim substitui-los por HTML entities.No caso do rodrigo não serve, pq eu tenho uma string que guarda um HTML inteiro de um template por exemplo, então eu preciso substituir em toda essa string em ocorrências que NÃO sejam html, css, js .. por entities, no caso só as palavras.Acho que provavelmente não existe algo parecido em PHP como eu encontrei em java, acho que vou ter que perder um tempinho fazendo isso com ER.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O post parece que tá passado, mas como eu cheguei aqui com a mesma dúvida (mas achei a resposta), vou postar aqui o que eu consegui caso alguém mais precise:

 

Vamos criar uma string com código html:

CODE

$string = "<a href=\"#\" target=\"_blank\">Este é o link da acentuação</a>";

Esta função converte somente os caracteres <>'"&

CODE

echo htmlspecialchars($string);

Retorna: <a href="#" target="_blank">Este é o link da acentuação</a>

 

Esta função converte todos os caracteres possíveos de serem convertidos para entities:

CODE

echo htmlentities($string);

Retorna: <a href="#" target="_blank">Este é o link da acentuação</a>

 

Converte tudo para entities e "des"converte os caracteres <>'"&

CODE

echo htmlspecialchars_decode(htmlentities($string));

Retorna: <a href="#" target="_blank">Este é o link da acentuação</a>

 

Qualquer coisa, é só copiar e testar no servidor, e depois, exibir o código-fonte.

 

Abraços! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

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.