pillinetwork hesabınızla giriş yapın.

PHP ile aranan kelimeyi renklendirme

Çoğu blog / forum scriptlerinde gördüğümüz aranan kelimeyi renklendirme için php için nasıl bir fonksiyon kullanıcaz bunu görelim ;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function vurgula($metin, $kelimeler, $renk = '#FFFF00')
{
if(is_array($kelimeler))
{
foreach($kelimeler as $k => $kelime)
{
$desen[$k] = "/\b($kelime)\b/is";
$degistir[$k] = '<font style=”background-color:'.$renk.';">\\1</font>';
}
} else {
$desen = "/\b($kelimeler)\b/is";
$degistir = '<font style="background-color:'.$renk.';">\\1</font>';
}
return preg_replace($desen,$degistir,$metin);
}

Kullanımı ise gayet basit ;

1
echo vurgula($metin, $aranan , $renk = '#FFFF00');

Hangi kelimeyi arıyacak : $aranan değişkeninde
Nerede Arıyacak : $metin değişkeninde
Ne renk olucak : $renk = '#FFFF00'

Bu fonksiyon kullanılarak yapılmış basit bir örnek ve ekran görüntüsü:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
function vurgula($metin, $kelimeler, $renk = '#FFFF00')
{
if(is_array($kelimeler))
{
foreach($kelimeler as $k => $kelime)
{
$desen[$k] = "/\b($kelime)\b/is";
$degistir[$k] = '<font style=”background-color:'.$renk.';">\\1</font>';
}
} else {
$desen = "/\b($kelimeler)\b/is";
$degistir = '<font style="background-color:'.$renk.';">\\1</font>';
}
return preg_replace($desen,$degistir,$metin);
}
//aşağıdaki verileri post yada get methoduyla alabilirsiniz
$metin = 'ben zaten kodaman\'ın tiryakisi olmuşum...';
$aranan = 'kodaman';
echo vurgula($metin, $aranan , $renk = '#FFFF00');
?>

Ekrana çıktısı :

php ile renklendirme
php ile renklendirme
Spacer
Spacer
/* dilsizbiblo yazdı. 05 Mart 2010 15:02. 7 yorum var */

Yorumlar

kodlarında bir eksiklik var sanırım.. eksik yapıştırmış olman muhtemel.. değilse zaten yanlış kod.. bu şekilde çalışmaz..

/* www.DjarumTurk.net */

@Serhat7 Yıkıcı yorum yapmaktan ne zevk alıyorsunuz anlamıyorum , ben fonksiyonu çalışır şekilde buraya yazdım ama çok enterasan kodlar eksik , fonksiyonun doğrusu şu şekilde olucak

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function vurgula($metin, $kelimeler, $renk = '#FFFF00')
{
if(is_array($kelimeler))
{
foreach($kelimeler as $k => $kelime)
{
$desen[$k] = "/\b($kelime)\b/is";
$degistir[$k] = '<font style=”background-color:'.$renk.';">\\1</font>';
}
} else {
$desen = "/\b($kelimeler)\b/is";
$degistir = '<font style="background-color:'.$renk.';">\\1</font>';
}
return preg_replace($desen,$degistir,$metin);
}

/* www.forumistik.com */

@dilsizbiblo, yıkıcı bir yorum yapmadım ki .. bak tekrar oku :

eksik "yapıştırmış" olman muhtemel.. biliyorum ki pilli de bu kod bloğunda sorun var.. o yüzden eksik olması muhetemel dedim.. bu kadar alıngan olmayın (:

/* www.DjarumTurk.net */

(; Aslında mesele alınganlık değil de, mevcut durumu ifade etme tarzı. Durum sanki çok sert bir şekilde ifade edilmiş gibi durduğundandı benim tepkim. (; Yoksa alıngan değilim şahsım adına.

Saygılarımla

Kodlarda problem yok. Test ettim.

/* http://www.HakanDamar.com */
function kizart($kelime,$metin){
$ara = str_replace($kelime,' '.$kelime.' ',$metin);
return $ara;
}
echo kizart('ses','sesimi duy');
//ses renkli yazılır
?>

Daha kısa bişekilde de halledilebilir... ara değişkeninde ikinci değişkene style uygulayabilirsiniz. Yine de saol.
/* paco_de_lucia */

üye olunpillinetwork sitelerine yorum ekleyebilmek ve daha fazlası için, üye olun ya da giriş yapın.

Bu yazıyı rapor et. Kural dışı içeriğe rastladığınızda editörlerimize rapor ederek müdahale edilmesini sağlayabilirsiniz. (Hangi durumlarda rapor edebilirim?)

Bu site

Nokta ve pilli ortak yapımı olan kodaman.org hep birlikte içerik üretip gelirini yazarları ile paylaştığımız kolektif bir kod yazarları blogudur. Siz de katılabilirsiniz.

pilliilan

son yorumlar

arama

pillinetwork