• 19-08-2013, 16:38:19
    #1
    $metin = "1,11,13,12";
    buradaki metinde diyelim 2 i arattım ve 2 varsa "doğru" yazsın yoksa "yanlış" yazmasını istiyorum. Fakat 2 yi 12 de aramamalı, strstr ile olmuyor. Nasıl yapabilirim.
    Şimdiden teşekkürler...
  • 19-08-2013, 16:55:03
    #3
    oşekilde olmadı ama bu şekilde hallettim. Diziye çevirdim.
    $aa = "2,3,22,44,13,12";
    $bb = explode(",",$aa);
    
    if (in_array("1", $bb)) 
    {
    echo "var";
    }
    else
    {
    echo "yok";
    }
  • 20-08-2013, 13:09:28
    #4
    Cas
    Üyeliği durduruldu
    RemiX adlı üyeden alıntı: mesajı görüntüle
    oşekilde olmadı ama bu şekilde hallettim. Diziye çevirdim.
    $aa = "2,3,22,44,13,12";
    $bb = explode(",",$aa);
    
    if (in_array("1", $bb)) 
    {
    echo "var";
    }
    else
    {
    echo "yok";
    }
    gereksiz kod yazmak iyi değildir hocam preg_match_all işinizi görür.
  • 20-08-2013, 14:11:15
    #5
    Cas adlı üyeden alıntı: mesajı görüntüle
    gereksiz kod yazmak iyi değildir hocam preg_match_all işinizi görür.
    örnek verebilir misin? benzer bir sorunum var..

    $metin: 'fas milli takımına çağrılan nordin amrabat kamerun milli takımı...';

    $aranan: 'abat';

    örneğin yukarıdaki metinde abat diye aratınca ambarat kısmından buluyor (strstr vb fonksiyonlarla denedim..) oysa bulmaması lazım. yani tam kelime eşleşmesi istiyorum..

    örnek verirseniz sevinirim..
  • 20-08-2013, 14:31:33
    #6
    Kimlik doğrulama veya yönetimden onay bekliyor.
    biomooj adlı üyeden alıntı: mesajı görüntüle
    örnek verebilir misin? benzer bir sorunum var..

    $metin: 'fas milli takımına çağrılan nordin amrabat kamerun milli takımı...';

    $aranan: 'abat';

    örneğin yukarıdaki metinde abat diye aratınca ambarat kısmından buluyor (strstr vb fonksiyonlarla denedim..) oysa bulmaması lazım. yani tam kelime eşleşmesi istiyorum..

    örnek verirseniz sevinirim..
    	$metin = 'fas milli takımına çağrılan nordin amrabat kamerun milli takımı...';
    	$aranan = 'abat';
    	if( preg_match("/\b$aranan\b/i", $metin) ) {
    
    		echo 'sonuc bulundu.';
    
    	} else {
    
    		echo 'sonuc bulunamadi.';
    
    	}
    
    
    	/*
    		$aranan = 'abat;
    		çıktı: sonuc bulunamadi.
    
    		$aranan = 'amrabat;
    		çıktı: sonuc bulundu.
    
    	*/
  • 20-08-2013, 15:46:20
    #7
    Cas
    Üyeliği durduruldu
    geç kalmışım arkadaş vermiş örneği
  • 20-08-2013, 16:34:09
    #8
    Cas adlı üyeden alıntı: mesajı görüntüle
    geç kalmışım arkadaş vermiş örneği
    İRoyal adlı üyeden alıntı: mesajı görüntüle
    	$metin = 'fas milli takımına çağrılan nordin amrabat kamerun milli takımı...';
    	$aranan = 'abat';
    	if( preg_match("/\b$aranan\b/i", $metin) ) {
    
    		echo 'sonuc bulundu.';
    
    	} else {
    
    		echo 'sonuc bulunamadi.';
    
    	}
    
    
    	/*
    		$aranan = 'abat;
    		çıktı: sonuc bulunamadi.
    
    		$aranan = 'amrabat;
    		çıktı: sonuc bulundu.
    
    	*/

    normalde çalışıyor fakat test edince bazı kelimelerde eşleştirmeleri yapamadığını gördüm. türkçe karakterlerden olabilir mi acep?

    örneğin

    $kelime = 'abartı';
    $metin_cumle_son = 'türk futbolcusu en ufak bir başarıda hemen şımartılıyor ve abartılıyor';
    
     if(preg_match("/\b$kelime\b/si", $metin_cumle_son)){
         echo $metin_cumle_son;
    
     }
    bunda true döndürüyor. oysa kelime 'abartı' değil 'abartılıyor'..
  • 21-08-2013, 13:01:20
    #9
    bu kod diğerlerine göre daha iyi. tabi tam çözümü bulamadım henüz... bu kodun tek eksiği cümle başında ve sonunda $aranan değişkeni varsa bulamayacak olması. cümle içindekileri ise sağ ve solunda birer boşluk varsa tam olarak bulabiliyor..

    strpos($metin,' '.$aranan.' ') !== false
    tam çözüm için bilgisi olanlar paylaşabilir..