Foros del Web » Programando para Internet » PHP »

Quitar class a texto

Estas en el tema de Quitar class a texto en el foro de PHP en Foros del Web. Buenas a todos tengo el sguiente problema cuando inserto un texto en un editor para la web este se insertar con el formato de word ...
  #1 (permalink)  
Antiguo 05/05/2008, 08:05
 
Fecha de Ingreso: enero-2008
Mensajes: 49
Antigüedad: 16 años, 3 meses
Puntos: 0
Exclamación Quitar class a texto

Buenas a todos

tengo el sguiente problema

cuando inserto un texto en un editor para la web este se insertar con el formato de word con un class=MsoNormal, lo que necesito es limpiar estas clases del texto pero sin quitar el formato de las etiquetas <p> o de negritas si es que hubiera.

ya que cuando rescato este texto dde la base necesito que aparesca con otra class

como puedo limpiar el texto??

gracias
  #2 (permalink)  
Antiguo 05/05/2008, 08:16
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: Quitar class a texto

puedes dejarlas limpias con una expresion regular...

$text=preg_replace('/<p[^>]*>(.+?)<\/p>/', '\\1', $text);

con esa expresion, separa... o mas bien, limpias los <p> y dejas solo su contenido
  #3 (permalink)  
Antiguo 05/05/2008, 08:20
 
Fecha de Ingreso: abril-2008
Ubicación: Montevideo - Uruguay
Mensajes: 156
Antigüedad: 16 años
Puntos: 5
Re: Quitar class a texto

Hi !

Puedes utilizar esta función que encontré por ahi:

Su uso y utilidad: pasamos a la función una referencia a un elemento DOM (obtenida mediante document.getElementById('elIdentificador') ) y un nombre de clase. Si el atributo class del elemento ya contiene dicho nombre, se elimina. Si no lo contiene, se añade.

Código HTML:
function toggleClassName(el, name) {

    // indica si hemos eliminado o no la clase
    var deleted = false;

    // obtenemos un array de nombres de clase
    // dividiendo la cadena `className` en cada
    // espacio
    var aClasses = el.className.split(' ');

    // recorremos el array para averiguar si 
    // contiene o no la clase que deseamos
    // añadir/eliminar
    for (var i = 0; !deleted && i < aClasses.length; ++i) {
        if (aClasses[i] == name) { // si la contiene
            // eliminamos el ítem del array
            delete(aClasses[i]); 
            // e indicamos que ya la hemos borrado
            deleted = true; 
        }
    }

    if (!deleted) { // si no la hemos borrado
        // hay que añadirla, hagámoslo
        aClasses[aClasses.length] = name;
    }

    // volvemos a convertir el array en una cadena
    // y la asignamos al atributo `class`
    el.className = aClasses.join(' ');
}
Usando la libreria PROTOTYPE puedes hacerlo mas facilmente.

P.D: A no ser que estes imprimiendo la clase desde un PHP esta solución, como puedes ver es de JAVASCRIPT.

Espero te sea util !

-ByE-
  #4 (permalink)  
Antiguo 05/05/2008, 10:29
 
Fecha de Ingreso: enero-2008
Mensajes: 49
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Quitar class a texto

claro ese es mi problema lo imprimo desde php
  #5 (permalink)  
Antiguo 05/05/2008, 11:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Quitar class a texto

Usa la solución de pateketrueke, necesitas usar preg_replace_all.

Saludos.
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 03:17.