Cevaplara yorum özelliği eklendi. Lütfen tartışmalar için yorumları kullanın. Tüm güncellemeler

Php kişi etiketleme sistemi

Merhabalar ben php kullanarak kişi etiketleme sistemi yaptım.Şimdi @BlackIce yazdık diyelim.Ben bu yazıyı bulabiliyorum.Buraya kadar sıkıntı yok.Sıkıntı şurada şimdi ben etiketlenen kişilere bildirim göndermek istiyorum.Ama cevapta birden fazla kişi etiketliyse örneğin @BlackIce @tayfunerbilen gibi bu iki kişiye ayrı ayrı bildirim nasıl göndereceğim?Birde bir isim iki kere yazılmışsa sadece bir kere bildirim göndersin.Sistemi php ile yazdım.


1

Cevaplar (1)

İşlem devam ediyor, lütfen bekleyin..
Emre KILIÇ
@adorratm
1 hafta önce

birden fazla etiketi regex ile linke mi çevirirsin bilemiyorum ama stringin içindeki elemanlar @ işaretine sahipse bunları foreach ile ve boşluğuna göre veya @ işaretine göre explode ile diziye atarsın diziyi de array_unique yaparsın tekrar etmez etiketler daha sonra da bildirim gönderirsin her birine oluşturduğun array_unique dizisini foreache sokup


Cevapla @blackIce1 hafta önce
@adorratm, Cevabınız için teşekkür ederim.Etiketleme olayını şu şekilde yapıyorum

Function kisietiket($everi){
$edesen = "#@+([a-zA-Z0-9]+)#si";
$everi = preg_replace($edesen, '<a href="http://localhost/deneme/uye/$1" class="etiketyazi">$0</a>',$everi);
$etiketlenenadi = preg_replace($edesen, '$1',$everi);

return $everi;
}
Bİldirim gönderme olayında sıkıntım küçük bir örnek yazabilir misiniz?
Cevapla @adorratm1 hafta önce
@blackIce, şöyle ki mantığını anlatayım bu bildirim işlemini twitter facebook tarzı client tarafına anlık olarak göndermek istiyorsanız nodejs socket.io tarzı bileşenler kullanmalısınız öte yandan eğer bir işlem yapıldığında örnek olarak : mesaj gönder butonuna bastınız ve kişi veya kişiler @ işaretiyle etiketli bu @ işaretli kişileri şöyle bir fonksiyondan geçirdiniz

$eslesen = array();
$ara =preg_match_all('/(^|\s)(@\w+)/', '@erman kdfjd fkjd as@erzübek @ lkjlkj @adorratm', $eslesen);
foreach ($eslesen as $sonuc){
echo $sonuc
}
burada @erman,@erzübek,@emre gibi @ işaretli kullanıcılar yazıldı.

bu döngü içerisinde bir insert işlemi yaparsınız mantıken bildirimler tablosuna

tabi burada id kullanacağınızı varsayıp @işaretini önce foreach döngüsünde phpye sorgulatıp böyle bir kullanıcı varsa onun kullanıcı idsini çekip daha sonradan bildirimler tablosuna idsini kaydedersiniz.

bu işlemlerin hepsi de bir javascript butonuna basılınca tetikleneceğinden bildirim tablosuna kullanıcıların idsini eklediğinizde daha sonra yapacağınız tek işlem bildirim tablosunu jquery setinterval ile 5 saniyede çekip gösterirsiniz.

Tabi bunu ben de kullanıyorum fakat kendim phpyi bırakıp nodejs öğrenmeye başlayacağım.Bu yöntemi önermiyorum kendim kullanıyor olsam da. O nedenle php ile yoluma devam edip bildirim göndereceğim ve bu işlem anlık olacak derseniz websockets kullanırsınız onunla da shell komutları zararlı gösteriliyor çoğu hosting tarafında da o nedenle ben de farklı bir çıkış yolu arıyorum varsa yol gösterebilecek @tayfunerbilen hocamız gibi bizi de aydınlatırsa bu bildirim sistemleriyle ilgili sevinirim.
İşlem devam ediyor, lütfen bekleyin..

Cevap yaz Sadece sorunun cevabını yazın