benim CMS RTF verilerini yazmak için nicEdit kullanın. Sorun böyle dizeleri oluşturur:
hello first line<br><br />this is a second line<br />this is a 3rd line
Bu bir haber sitesi için olduğundan, ben çok bu gibi olmak için son html tercih:
<p>hello first line</p><p>this is a second line<br />this is a 3rd line</p>
bu yüzden benim geçerli çözüm şudur:
- i dize başlangıç / sonunda
<br />
için $ verileri Döşeme gerekir - 2
<br/>
ya da daha fazla olan tüm dizeleri yerini</p><p>
(tek<br />
izin verilir). - Son olarak, sonunda
<p>
başlangıcında ve</p>
ekleyin
şimdiye kadar sadece 1. ve 3. adımları var. Birisi bana adım 2 ile bir el verebilir?
function replace_br($data) {
# step 1
$data = trim($data,'<p>');
$data = trim($data,'</p>');
$data = trim($data,'<br />');
# step 2 ???
// preg_replace() ?
# step 3
$data = '<p>'.$data.'</p>';
return $data;
}
teşekkürler!
ps: bu özel durumları önlemek için daha iyi olurdu. örneğin: "hello<br /><br /><br /><br /><br />too much space
," -, bu 5 breaklines da dönüştürülmesi gereken tek bir "{[(1)"}]
final solution (kemp özel teşekkür!)
function sanitize_content($data) {
$data = strip_tags($data,'<p>,<br>,<img>,<a>,<strong>,<u>,<em>,<blockquote>,<ol>,<ul>,<li>,<span>');
$data = trim($data,'<p>');
$data = trim($data,'</p>');
$data = trim($data,'<br />');
$data = preg_replace('#(?:<br\s*/?>\s*?){2,}#','</p><p>',$data);
$data = '<p>'.$data.'</p>';
return $data;
}