Foros del Web » Programando para Internet » PHP »

htmlentities() sin htmlspecialchars()

Estas en el tema de htmlentities() sin htmlspecialchars() en el foro de PHP en Foros del Web. Hola chicos: Cómo sabrán, PHP tiene las funciones htmlspecialchars() y htmlentities() . Yo quiero que en mi DB se aloje información códigos HTML (específicamente <b><i><p> ...
  #1 (permalink)  
Antiguo 26/05/2005, 10:22
Avatar de nachopro  
Fecha de Ingreso: noviembre-2003
Ubicación: Haedo, Bs. As.
Mensajes: 290
Antigüedad: 20 años, 4 meses
Puntos: 2
htmlentities() sin htmlspecialchars()

Hola chicos:

Cómo sabrán, PHP tiene las funciones htmlspecialchars() y htmlentities() .

Yo quiero que en mi DB se aloje información códigos HTML (específicamente <b><i><p> y esos) y que los caracteres especiales se conviertan al código HTML (ejemplo á sea &aacute;)

para lo cual necesito es que a la variable del formulario se le aplique htmlentities() sin htmlspecialchars()..
es posible esto? cómo?? ya que probé con el siguiente código (para ver si funcionaba) pero no hay caso

Código PHP:
$gen_tex_db=!htmlspecialchars(htmlentities(mysql_real_escape_string($_POST['gen_tex']))); 
o si no, qué se les ocurre que pueda hacer?

probé con str_replace("&lt;", "<", $gen_tex_db) y tampoco me anda

muchas gracias

Última edición por nachopro; 26/05/2005 a las 11:01
  #2 (permalink)  
Antiguo 26/05/2005, 16:22
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
En http://ar2.php.net/manual/es/function.htmlentities.php en los comentarios está la respuesta exacta a tu pregunta

Código PHP:
//a function to encode everything but html tags. pattern improvement is much appreciated!

function htmlEncodeText ($string)
{
  
$pattern '<([a-zA-Z0-9\. "\'_\/-=;\(\)?&#%]+)>';
  
preg_match_all ('/' $pattern '/'$string$tagMatchesPREG_SET_ORDER);
  
$textMatches preg_split ('/' $pattern '/'$string);

  foreach (
$textMatches as $key => $value) {
   
$textMatches [$key] = htmlentities ($value);
  }

  for (
$i 0$i count ($textMatches); $i ++) {
   
$textMatches [$i] = $textMatches [$i] . $tagMatches [$i] [0];
  }

  return 
implode ($textMatches);

Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:04.