Boş, gereksiz HTML etiketleri temizleme Regexp

4 Cevap php

Benim projelerinden biri varsayılan düzenleyici olarak TinyMCE (WYSIWYG) kullanıyorum ve bazen otomatik olarak <p>&nbsp;</p> , <p> </p> veya divs ekler.

Ben arıyor ama gerçekten regex boş etiketleri temizlik iyi bir yol bulamadı.

Ben kullanılan denedim koddur

$pattern = "/<[^\/>]*>([\s]?)*<\/[^>]*>/";
$str = preg_replace($pattern, '', $str);

Not: (: Ben de çok nbsp & temizlemek istiyorum

4 Cevap

O sıradanifade biraz garip - ama işe yarayabilir gibi görünüyor. Bunun yerine bu deneyebilirsiniz:

$pattern = ':<[^/>]*>\s*</[^>]*>:';
$str = preg_replace($pattern, '', $str);

Çok benzer olsa da.

Ben size ne istedi doğrudan değil biliyorum, ama TinyMCE ay sonra, bu ancak Word doğrudan gönderme kullanıcıların sonuçları cehennem değil, sadece baş, ben değil FCKeditor olarak geçiş yapmış ve mutlu olmak.

EDIT: net değil sadece durumda, ne diyorum bunun gibi hissediyor, artı kutudan yapıştırılan Kelime bok ile baş nerede FCKeditor keyfi parag eklemek olmamasıdır. Sen yardımcı olmak benim previous question bulabilirsiniz.

Birden Regexes diğer bir genel biriyle elemanları istedim ortadan yok emin olmak isterim.

Ben size bir genel regex geçerli elemanları düşebilir dediği gibi

<\s*[^>]*>\s*`&nbsp;`\s*<\s*[^>]*>
<\s*p\s*>\s*<\s*/p\s*>
<\s*div\s*>\s*<\s*/div\s*>

Bu deneyin:

<([\w]+)[^>]*?>(\s|&nbsp;)*<\/\1>