Açık Kalan HTML Etiketlerini Kapatma
28
●2.917
- 19-06-2010, 21:09:15Kimlik doğrulama veya yönetimden onay bekliyor.Yine de tam çözüm olmadı. Mesela HTML deki strong tagının yarım kaldığını düşün (örneğin </stron olarak) Bu sefer benim yazdığım fonksiyon işe yaramayacak, çünkü son 5 karakter üzerinden çalışıyor. Biraz daha geliştirilse fonksiyon fena olmaz...
- 20-06-2010, 07:22:04Kimlik doğrulama veya yönetimden onay bekliyor.Sanırım benim mesajım arada kaynadı, işe yaradı dediğiniz fonksiyon yukarda örnek verdiğim texti doğru kapatmıyor, <p> tagını <b> içinde gösteriyor. Oysa benim yazdığımda sorun yok. Atladığım bir yer varsa söylersiniz düzeltiriz, çünkü farklı ihtimaller için kafa yormadım. Bu arada belirttiğin gibi alıntı sonunda </ ile başlayan yer kapanacaksa şu şekile çevirmek yeterlidir sanırım:metadige adlı üyeden alıntı: mesajı görüntüle
$text = '<h3>başlık3</h3>öylesine yazı<b>bold yazı <p>paragraf</str'; if(preg_match_all('/(<[^\>\/]*\>)?([^<\>]+)(<\/[^\>\/]*\>)?/smi',$text,$al)){ $say = count($al[1]); for($i=0;$i<$say;$i++){ $yeni .= ($al[1][$i] != '') ? $al[1][$i].$al[2][$i].str_replace('<','</',$al[1][$i]) : ((substr($al[2][$i],0,1) != '/') ? $al[2][$i] : ''); } } echo $yeni; - 21-06-2010, 02:24:39Hakkaten yav benim kafam durmuş yazarken sanırım

O zaman şu şekilde yapabiliriz:
$text = '<h3>başlık3</h3>öylesine yazı<b>bold yazı<u>alt çizgi<p>paragraf</str'; if(preg_match_all('/(<[^\>\/]*\>)?([^<\>]+)(<\/[^\>\/]*\>)?/smi',$text,$al)){ $say = count($al[1]); for($i=0;$i<$say;$i++){ $yeni .= ($al[1][$i] != '' && substr($al[2][$i],0,1) != '/') ? $al[0][$i] : ''; $son = ($al[3][$i] == '') ? str_replace('<','</',$al[1][$i]).$son : ''; } } echo $yeni.$son;
