vatanyazilim adlı üyeden alıntı: mesajı görüntüle
@mertotrk;
Bazı yazıların kaybolduğunu farkettim,
Biraz dikkat ettiğimde, kodun silme işlemini bir sonraki başlangıca kadar yaptığını gördüm.
Örnek:
$kayit='<p> Adı Ahmet Soyadı Kurt T.C. Kimlik no: 12345678910</p><p> Adı Ayşe Soyadı Yıldız T.C. Kimlik no: 12345678912</p>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<p> Adı Murat Soyadı duru T.C. Kimlik no: 12345678914</p><p> Adı Selim Soyadı Demir T.C. Kimlik no: 12345678916</p>';
sil($kayit, "Yıldız", "<p>", "</p>");

uygulandığında aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa yazısı da silinmiş oluyor...Mümkünse bir sonraki başlangıca kadar değil de, bitiş tagına kadar olan yeri (başlangıç ve bitiş tagı dahil) sildirebilir misiniz?

function sil($kayit, $g,$tag,$tagbitis){
	preg_match_all("/$g/s", $kayit, $soyisimler,PREG_OFFSET_CAPTURE);
	if($soyisimler):
		$ha = array();
		foreach($soyisimler[0] as $k):
			$before = substr($kayit, 0, $k[1]);
			$h = @end(explode($tag, $before));
			$before = substr($kayit, $k[1], strlen($kayit));
			$c = @reset(explode($tagbitis, $before));
			$l = $tag.$h.$c.$tagbitis;		
			if(@strlen($l) > 0) $ha[] = $l;
		endforeach;
		$kayit = str_replace($ha, "", $kayit);
	endif;
	return $kayit;
}
$kayit='<p> Adı Ahmet Soyadı Kurt T.C. Kimlik no: 12345678910</p><p> Adı Ayşe Soyadı Yıldız T.C. Kimlik no: 12345678912</p>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<p> Adı Murat Soyadı duru T.C. Kimlik no: 12345678914</p><p> Adı Selim Soyadı Demir T.C. Kimlik no: 12345678916</p>';
echo sil($kayit, "Yıldız", "<p>", "</p>");
Şu şekilde kullanabilrisiniz