Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] eliminar formato HTML dentro de otra etiqueta

Estas en el tema de eliminar formato HTML dentro de otra etiqueta en el foro de PHP en Foros del Web. Hola. Estoy modificando la etiqueta <pre> con CSS que le da un aspecto de código al texto dentro de ella, pero quisiera que dentro de ...
  #1 (permalink)  
Antiguo 13/02/2016, 11:16
 
Fecha de Ingreso: noviembre-2015
Ubicación: Colombia
Mensajes: 37
Antigüedad: 8 años, 5 meses
Puntos: 0
eliminar formato HTML dentro de otra etiqueta

Hola. Estoy modificando la etiqueta <pre> con CSS que le da un aspecto de código al texto dentro de ella, pero quisiera que dentro de esas etiquetas (<pre> y </pre>) todas las demás etiquetas HTML no funcionaran. La manera que pienso sería más sencilla sería usar la función strip_tags(), pero el verdadero problema es que no sé cómo seleccionar sólo el contenido que se encuentra dentro de las etiquetas <pre> y </pre>, para sólo eliminar las etiquetas HTML dentro de esas etiquetas, y no de todo el contenido.
Agradecería me ayudaran, gracias :B
  #2 (permalink)  
Antiguo 13/02/2016, 11:20
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: eliminar formato HTML dentro de otra etiqueta

Sería más fácil que usaras la etiqueta <code> no?
Código PHP:
Ver original 
Tiene dos parámetros, la cadena donde buscará y los datos a buscar.

Saludos
  #3 (permalink)  
Antiguo 13/02/2016, 11:24
 
Fecha de Ingreso: noviembre-2015
Ubicación: Colombia
Mensajes: 37
Antigüedad: 8 años, 5 meses
Puntos: 0
Respuesta: eliminar formato HTML dentro de otra etiqueta

Cita:
Iniciado por rodocoyote15 Ver Mensaje
Sería más fácil que usaras la etiqueta <code> no?
Código PHP:
Ver original 
Tiene dos parámetros, la cadena donde buscará y los datos a buscar.

Saludos
Verás, uso <pre> porque la función de ésta es lo que necesito, <code> ya la tengo para otros usos.
Como dije en el primer post, ya había pensado en strip_tags(), pero como igualmente dije en mi primer post, necesito que sólo quite las etiquetas HTML al contenido que está entre <pre> y </pre>, no a todo el contenido. Lo que necesito es que "detecte(?)" y "separe(?)" lo que hay entre <pre> y </pre>, y eso sí sea formateado con strip_tags()
  #4 (permalink)  
Antiguo 13/02/2016, 11:30
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: eliminar formato HTML dentro de otra etiqueta

Entonces podrías usar
Código PHP:
Ver original
  1. htmlespecialchars

Algo así

Código PHP:
Ver original
  1. <?php
  2. $text = '<a></a><p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
  3. echo htmlspecialchars($text);
  4. ?>
  #5 (permalink)  
Antiguo 13/02/2016, 11:37
 
Fecha de Ingreso: noviembre-2015
Ubicación: Colombia
Mensajes: 37
Antigüedad: 8 años, 5 meses
Puntos: 0
Respuesta: eliminar formato HTML dentro de otra etiqueta

Cita:
Iniciado por rodocoyote15 Ver Mensaje
Entonces podrías usar
Código PHP:
Ver original
  1. htmlespecialchars

Algo así

Código PHP:
Ver original
  1. <?php
  2. $text = '<a></a><p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
  3. echo htmlspecialchars($text);
  4. ?>
Ke no, ke no xDD...
Mira, lo que pasa es que tengo una sola string con todo el contenido, y dentro de ella están las etiquetas <pre> y </pre>, y quiero que sólo esa parte de la cadena se formatee. Por ejemplo:
Código:
$contenido = "<h2>Código</h2><i>Este es un código:</i><pre><h2>Esto es un código</h2></pre>"
Y quisiera que se mostrara así:
Cita:
Código
Este es un código:
Código HTML:
<h2>Esto es un código</h2> 
Y como puedes ver, el contenido normal no se formateó, las etiquetas HTML siguen funcionando; pero lo que estaba entre <pre> y </pre> fue formateado, mostando las etiquetas <h2> y </h2> sin darle formato de encabezado al texto
¿Ahora sí me explico? xD
  #6 (permalink)  
Antiguo 13/02/2016, 11:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: eliminar formato HTML dentro de otra etiqueta

Con expresiones regulares podrías conseguirlo:
Código PHP:
Ver original
  1. $contenido = "<h2>Código</h2><i>Este es un código:</i><pre><h2>Esto es un código</h2></pre>";
  2. $contenido = preg_replace_callback('#<pre([^<>]*)>(.+?)</pre>#is', function($matches) {
  3.   return "<pre$matches[1]>".htmlspecialchars($matches[2])."</pre>";
  4. }, $contenido);
  5.  
  6. echo $contenido;
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 13/02/2016, 12:09
 
Fecha de Ingreso: noviembre-2015
Ubicación: Colombia
Mensajes: 37
Antigüedad: 8 años, 5 meses
Puntos: 0
Respuesta: eliminar formato HTML dentro de otra etiqueta

Uff, muchísimas gracias, pateketrueke(? xD), me has salvao el día :D

SOLUCIONAO! xD

Etiquetas: etiqueta, formato, html
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




La zona horaria es GMT -6. Ahora son las 17:50.