HTML Tag & Entity Temizleme İşlemi
11 Ocak 2026
Müzik platformunda genre (tür), playlist, album ve sektör sayfalarında açıklamalar bozuk görünüyor.
Ekranda HTML kodları (<p>, </p>) ve bozuk Türkçe karakterler
(ü gibi) aynen yazılı çıkıyor.
❌ Şu an nasıl görünüyor:
<p>Lo-Fi müzikleriyle huzurlu ve dinlendirici bir atmosfer sunun.</p>
✅ Nasıl olması gerekiyor:
Lo-Fi müzikleriyle huzurlu ve dinlendirici bir atmosfer sunun.
Bu sorunu düzeltmek için:
<p>, </p>) kaldıracağız
muzibu_genres
description (JSON, translatable)muzibu_playlists
description (JSON, translatable)muzibu_albums
description (JSON, translatable)muzibu_sectors
description (JSON, translatable)1. HTML Tag Sorunu:
DB'de description field'leri <p> ve </p> tagları ile sarılmış halde saklanmış:
"<p>Lo-Fi müzikleriyle huzurlu ve dinlendirici bir atmosfer sunun.<\/p>"
2. HTML Entity Sorunu:
Türkçe karakterler HTML entity olarak saklanmış:
ü → üç → çö → öÖ → ÖÜ → ÜÇ → Çİ → İı → ı3. View Render Sorunu:
View'lerde {{ }} kullanılmış (HTML escape eder):
{{ $genre->getTranslation('description', app()->getLocale()) }}
Ancak zaten view'de <p class="text-sm..."> tagi var, bu nedenle DB'den gelen HTML taglarına gerek yok!
JSON Field Parse Et
Her bir kayıttaki description JSON'unu parse et, diller için ayrı ayrı işle
HTML Taglarını Kaldır
strip_tags() fonksiyonu ile tüm HTML taglarını temizle
HTML Entity'leri Decode Et
html_entity_decode() ile tüm HTML entity'leri düz karaktere çevir
Fazla Boşlukları Temizle
trim() ve whitespace normalizasyonu
JSON'a Geri Encode Et
Temizlenmiş metni JSON formatında DB'ye kaydet
Temizlik işleminden ÖNCE güvenlik için backup al
mysqldump tenant_muzibu_1528d0 muzibu_genres muzibu_playlists muzibu_albums muzibu_sectors > backup-descriptions.sql
Tüm tablolardaki description field'lerini temizleyecek Laravel command
app/Console/Commands/CleanDescriptionFieldsCommand.phpTenant context'te command çalıştır
php artisan muzibu:clean-descriptions --tenant=1001
Genre, playlist, album, sector sayfalarını tarayıcıda test et
https://muzibu.com/genres/lo-fihttps://muzibu.com/playlists/...https://muzibu.com/albums/...https://muzibu.com/sectors/...View ve response cache'i temizle
php artisan view:clear && php artisan responsecache:clear
Risk: Veri Kaybı
Description field'leri geri döndürülemez şekilde değiştirilecek
Önlem: Mutlaka backup al!
Risk: Yanlış Encoding
UTF-8 encoding bozulabilir, Türkçe karakterler kaybolabilir
Önlem: html_entity_decode() UTF-8 flag ile kullan
Risk: JSON Bozulması
JSON encode/decode sırasında veri yapısı bozulabilir
Önlem: JSON_UNESCAPED_UNICODE flag kullan
Şu Anda (Bozuk)
<p>Lo-Fi müzikleriyle huzurlu ve dinlendirici bir atmosfer sunun.</p>
Sonrası (Temiz)
Lo-Fi müzikleriyle huzurlu ve dinlendirici bir atmosfer sunun.