Giriş yapmadınız.

#1 07.03.2019 15:55:50

bhdr
Üye
Kayıtlı: 09.06.2018
Mesajlar: 89

Belli kelimelerin üzerini çizmek

CKEditör ile post ettiğim veriyi çektiğimde, belirleyeceğim kelimelerin üzerini kırmızı çizmek istiyorum. Laraveldeki yöntemi nedir, nasıl bir yol izlenir?

Aslında yapmak istediğim olay şu, bir forum yapıyorum, örneğin okul kelimesini filtreledim, forum başlığının içerisinde okul kelimesi geçiyorsa, Başlığın üstüni css ile

text-decoration: line-through;

çizeceğim.

Son düzenleyen bhdr (07.03.2019 16:01:57)

Çevrimdışı

#2 07.03.2019 17:09:32

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 1,537
Website

Yanıt: Belli kelimelerin üzerini çizmek

Bu Laravel ile ilgili değil genel bir PHP sorusu.

// Sizin veri
$content= $page->content;

// Filtrelenecek kelime(ler)
$words = ['okul', 'öğrenci', 'istanbul'];

// Regexp
$pattern = '/('.implode('|', $words).')/';

// Kelimenin yerine gelecek kod. Okul için <span class="filtered">okul</span> olacak yani
$replacement = '<span class="filtered">$1</span>';

// Filtrelenmiş HTML
$filtered = preg_replace($pattern, $replacement  , $content);
.filtered {
    text-decoration: line-through;
}

Çevrimdışı

#3 07.03.2019 17:16:27

bhdr
Üye
Kayıtlı: 09.06.2018
Mesajlar: 89

Yanıt: Belli kelimelerin üzerini çizmek

mgsmus yazdı:

Bu Laravel ile ilgili değil genel bir PHP sorusu.

// Sizin veri
$content= $page->content;

// Filtrelenecek kelime(ler)
$words = ['okul', 'öğrenci', 'istanbul'];

// Regexp
$pattern = '/('.implode('|', $words).')/';

// Kelimenin yerine gelecek kod. Okul için <span class="filtered">okul</span> olacak yani
$replacement = '<span class="filtered">$1</span>';

// Filtrelenmiş HTML
$filtered = preg_replace($pattern, $replacement  , $content);
.filtered {
    text-decoration: line-through;
}

Teşekkürle @mgsmus hocam..

Çevrimdışı

#4 17.03.2019 19:20:46

bhdr
Üye
Kayıtlı: 09.06.2018
Mesajlar: 89

Yanıt: Belli kelimelerin üzerini çizmek

Bu filtreleme işleminde kesin kelimeler kullanabiliyor muyuz? Örneğin ben kız kelimesini filtrelemek istiyorum, kızacağım yazdığımda kız kelimesinin üzerini de çiziyor.

Çevrimdışı

#5 17.03.2019 23:10:46

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 1,537
Website

Yanıt: Belli kelimelerin üzerini çizmek

Regexp araştırması yaparak istediğiniz sonuçlara ulaşabilirsiniz. Örneğin üstteki örnek için;

$words = ['okul', 'öğrenci', 'istanbul'];

$words = array_map(function($word) {
	return "\b{$word}\b";
}, $words);

...

yapılabilir. Bu şekilde okul kelimesini çizer ama okullar kelimesini ellemez mesela.

Çevrimdışı

#6 18.03.2019 10:50:12

bhdr
Üye
Kayıtlı: 09.06.2018
Mesajlar: 89

Yanıt: Belli kelimelerin üzerini çizmek

mgsmus yazdı:

Regexp araştırması yaparak istediğiniz sonuçlara ulaşabilirsiniz. Örneğin üstteki örnek için;

$words = ['okul', 'öğrenci', 'istanbul'];

$words = array_map(function($word) {
	return "\b{$word}\b";
}, $words);

...

yapılabilir. Bu şekilde okul kelimesini çizer ama okullar kelimesini ellemez mesela.


Anladım hocam, elinize sağlık..

Çevrimdışı

Forum alt kısmı