Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/06/2011, 13:38
V-P
 
Fecha de Ingreso: noviembre-2008
Mensajes: 21
Antigüedad: 16 años, 1 mes
Puntos: 0
Problema con expresión regular y función preg_replace

Hola Comunidad, después de leer mucho y aprender a usar las expresiones regulares me topé con un problema.

El caso es que necesito limpiar un código html que es este

Código HTML:
<div id="columns">
        <ul id="column3" class="column">
            <li class="widget color-orange">  
                <div class="widget-head" style="cursor: move; "><a href="#" class="collapse">COLLAPSE</a>
                    <h3>Widget title</h3>
                <a href="#" class="remove">CLOSE</a><a href="#" class="edit">EDIT</a></div><div class="edit-box" style="display:none;"><ul><li class="item"><label>Change the title?</label><input value="Widget title"></li></ul><li class="item"><label>Available colors:</label><ul class="colors"><li class="color-yellow"></li><li class="color-red"></li><li class="color-blue"></li><li class="color-white"></li><li class="color-orange"></li><li class="color-green"></li></ul></li></div>
                <div class="widget-content">
                    <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam magna sem, fringilla in, commodo a, rutrum ut, massa. Donec id nibh eu dui auctor tempor. Morbi laoreet eleifend dolor. Suspendisse pede odio, accumsan vitae, auctor non, suscipit at, ipsum. Cras varius sapien vel lectus.</p>
                </div>
            </li>
            <li class="widget color-white">  
                <div class="widget-head" style="cursor: move; "><a href="#" class="collapse">COLLAPSE</a>
                    <h3>Widget title</h3>
                <a href="#" class="remove">CLOSE</a><a href="#" class="edit">EDIT</a></div><div class="edit-box" style="display:none;"><ul><li class="item"><label>Change the title?</label><input value="Widget title"></li></ul><li class="item"><label>Available colors:</label><ul class="colors"><li class="color-yellow"></li><li class="color-red"></li><li class="color-blue"></li><li class="color-white"></li><li class="color-orange"></li><li class="color-green"></li></ul></li></div>
                <div class="widget-content">
                    <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam magna sem, fringilla in, commodo a, rutrum ut, massa. Donec id nibh eu dui auctor tempor. Morbi laoreet eleifend dolor. Suspendisse pede odio, accumsan vitae, auctor non, suscipit at, ipsum. Cras varius sapien vel lectus.</p>
                </div>
            </li><li class="widget color-yellow" style="position: static; top: auto; left: auto; clear: none; z-index: auto; opacity: 1; ">  
                <div class="widget-head" style="cursor: move; "><a href="#" class="collapse">COLLAPSE</a>
                    <h3>Widget title</h3>
                <a href="#" class="remove">CLOSE</a><a href="#" class="edit">EDIT</a></div><div class="edit-box" style="display:none;"><ul><li class="item"><label>Change the title?</label><input value="Widget title"></li></ul><li class="item"><label>Available colors:</label><ul class="colors"><li class="color-yellow"></li><li class="color-red"></li><li class="color-blue"></li><li class="color-white"></li><li class="color-orange"></li><li class="color-green"></li></ul></li></div>
                <div class="widget-content">
                    <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam magna sem, fringilla in, commodo a, rutrum ut, massa. Donec id nibh eu dui auctor tempor. Morbi laoreet eleifend dolor. Suspendisse pede odio, accumsan vitae, auctor non, suscipit at, ipsum. Cras varius sapien vel lectus.</p>
                </div>
            </li>
        </ul>
</div> 
La idea es limpiar del código anterior esta parte.

Código HTML:
<a href="#" class="remove">CLOSE</a><a href="#" class="edit">EDIT</a></div><div class="edit-box" style="display:none;"><ul><li class="item"><label>Change the title?</label><input value="Widget title"></li></ul><li class="item"><label>Available colors:</label><ul class="colors"><li class="color-yellow"></li><li class="color-red"></li><li class="color-blue"></li><li class="color-white"></li><li class="color-orange"></li><li class="color-green"></li></ul></li> 
Hice esta expresión regular

Código:
(<a).*?(value=\").*?(\"></li>).*?(</ul></li>)
pero cuando la uso en la función preg_replace me da el siguiente error.

Cita:
Warning: preg_replace() [function.preg-replace]: Unknown modifier 'l' in ....
y la linea donde da el error es

Código PHP:
$txt preg_replace('/(<a).*?(value=\").*?(\"></li>).*?(</ul></li>)/',' ',$texto); 
La verdad no se donde se provoca el error, lo único que se me ocurre es que hay algo mal en la expresión regular, pero la probé en varios simuladores y ninguno me dio problemas

Espero que alguien me ayude Gracias