• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

jreis

[PHP]Conversor de Texto para HMTL Entities

1 mensagem neste tópico

Boas, uso este pequeno script para converter texto para o equivalente com as HTML Entities corrigidas. Atenção que o objectivo deste script não é para ser usado num site propriamente dito, uso isto apenas como ferramenta quando preciso de inserir algum volume de texto numa página, p. ex.

Este script faz uso da excelente biblioteca javascript Prototype para ajudar no AJAX e no acesso ao DOM. Façam dowload, o ficheiro que nos interessa neste caso é o prototype.js, que deverá ser colocado na mesma pasta que os restantes.

Ficheiro "conv.php" (chamem-lhe o que quiserem):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script src="prototype.js" language="javascript" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
function converte()
{
var url = 'conv2.php'
var pars = 'orig='+$('orig').value;
var myAjax = new Ajax.Request(
		url, 
		{
			method: 'post', 
			postBody: pars, 
			onComplete: showResponse
		});
}
function showResponse(pedido)
{
$('dest').value = pedido.responseText;
}
</script>
<title>Conversor de HMTL Entities</title>
</head>
<h1>Conversor de Entidade HTML</h1>
<textarea name="orig" id="orig" cols="100" rows="15" onclick="this.value = '';"></textarea><br /><br />
<input type="button" onclick="converte()" value="Converter!!" /><br /><br />
<textarea name="dest" id="dest" cols="100" rows="15" onclick="this.select();"></textarea>
<body>
</body>
</html>

Ficheiro "conv2.php" (ficheiro que faz a conversão propriamente dita)

<?php
$txt = stripslashes($_POST['orig']);
echo str_replace('<br /&gt', '<br />',str_replace("'",'’', nl2br(htmlentities(utf8_decode($txt)))));
?>

Eu sei que isto não está perfeito, mas como é apenas uma ferramenta para ajudar no desenvolvimento que nunca irá ser vista pelo utilizador final, não precisa de estar  ;)

Em relação ao utf8_decode(), já nao me lembro bem porquê que está aí, mas suponho que seja por causa da comunicação com o javascript (até porque a página inicial está em ISO-8859-1).

A fazer: Converter mais caracteres, nomeadamente as "smart quotes" do Word (e possivelmente outros processadores de texto), entre outras coisas. E por o código mais bonito, criar uma função para isso, largando aqueles str_replace();.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora