• 03-07-2009, 14:49:42
    #10
    Teşekkür ederim cevaplar için.
    Aslında tam olarak ilk mesajımda yazdığımı yapmaya çalışıyorum. Bunla ilgili ilk sorum sadece preg_match'taki desen parametresini değiştirerek nasıl yapabileceğim(Genel olarak yani kendi kapama divini bulması). İkinci sorumsa bunu yapmanın bir yolu olan ikinci </div>'de durmasını(yani atlayacağı </div>'leri sayı olarak vermeyi) deseni değiştirerek fonksiyona nasıl söyleyebileceğim. (ki bunun cevabını MC_delta_T öyle bişiy yok diyerek vermiş )
  • 03-07-2009, 15:26:22
    #11
    Olmaz diye birşey yok, sen benim verdiğim kodu denedin mi ?
  • 04-07-2009, 08:28:53
    #12
    senin verdiğin kod yanlış anlamadıysam "</div>/r/n<di" karakterini bulmasını söylüyor benim istediğim ise </div>'den sonra gelen /r/n<di ifadelerine bağlı kalmamak ya bu deseni değiştirerek gerçekten 2. </div>'i bulmasını filan söyleyemiyor muyuz? sadece bunun cevabını alsam yeter olmadı MC_delte_T'nin verdiği linkteki fonksiyonu kullanıcam
  • 04-07-2009, 13:36:20
    #13
    KaraSancak adlı üyeden alıntı: mesajı görüntüle
    senin verdiğin kod yanlış anlamadıysam "</div>/r/n<di" karakterini bulmasını söylüyor benim istediğim ise </div>'den sonra gelen /r/n<di ifadelerine bağlı kalmamak ya bu deseni değiştirerek gerçekten 2. </div>'i bulmasını filan söyleyemiyor muyuz? sadece bunun cevabını alsam yeter olmadı MC_delte_T'nin verdiği linkteki fonksiyonu kullanıcam
    Arkadaşım, sen ne istediğini bilmiyorsun bence, ilk mesajında tam olarak ne istediğini söylemişsin, sana ona göre yardım ediyoruz, ama daha sonrada konu çorba olmuş, sen ikinci div derken ilk mesajda verdiğin kodlardan göster, hangi veriyi çekmek istiyosun ?
  • 04-07-2009, 13:55:12
    #14
    Arkadaşım kusura bakma biraz karışmış olabilir ama amacım kaba olarak veriyi çekmek değil. Şu deseni değiştirerek ben ona bulduğu ilk </div>'de değilde ikinci </div>'de durmasını nasıl söyleyebilirim. Ama sonuna senin yaptığın gibi /r/n ekleyerek değil bildiğin onlar orda olmasa bile ikinci </div>'e kadar okuycak???
  • 04-07-2009, 14:25:46
    #15
    \r\n o desenin bir parçasıdır, istediğin veriyi çekmek için bazı yerlerde mecburen kullanmak zorundasın, ben senin ne yapmak istediğini yine anlayamadım, ama istediğini işlemi preg_match, preg_match_all, explode ve substr ile rahatça yapabilirsin, bu ister ikinci div olsun ister yüzüncü...
  • 04-07-2009, 15:03:37
    #16
    yine de cevaplar için teşekkürler
  • 04-07-2009, 23:34:54
    #17
    <?
    /*
     MSTF
    */
    $Content = '
    <div class="sinifim">
    	içerik başlangıç
    	<div class="sinifim">
    		içerik başlangıç 2
    		<div class="sinifim">
    			içerik başlangıç 3
    			<div class="sinifim">
    				içerik 4
    			</div>
    			içerik son3
    		</div>
    		içerik son 2
    	</div>
    	içerik son
    </div>
    ';
    
    function Get_Tag_Content($Content, $Tag, $Deep = 0)
    {
    	static $Deep_Counter = 0;
    	static $Exit = FALSE;
    	
    	if($Exit){
    		return $Content;
    	}
    
    	if(!is_numeric($Deep)){
    		trigger_error('Geçersiz derinlik değeri', E_USER_ERROR);
    	}
    
    	preg_match("#<$Tag.*>((?:[^<]|<(?!/?$Tag]))+)</$Tag>#", $Content, $o);
    
    	if($Deep_Counter == $Deep){
    		$Exit = TRUE;
    		return Get_Tag_Content($o[1], $Tag, $Deep);
    	}
    	
    	$Deep_Counter++;
    
    	return Get_Tag_Content($o[1], $Tag, $Deep);
    }
    
    echo Get_Tag_Content($Content, 'div', 2);
    ?>