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