İlan
05 Haz 2026 29 çevrimiçi üye Duyurular
Ana Sayfa Web Geliştirme
Ana Sayfa Forum Web Geliştirme Php 8.5 Unicode ve Çok Baytlı Dizeleri Anlama ve K...
İlan Yan banner placeholder

Php 8.5 Unicode ve Çok Baytlı Dizeleri Anlama ve Kullanma

Socialm 10.03.2026 01:38 793 görüntüleme 2 cevap
Son Mesaj
Socialm
Üye
Üye
Katılım28 Ara 2025
Konular6
Mesajlar47
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
10.03.2026 01:38 #1
Modern web geliştirmede, genellikle ASCII olmayan karakterleri içeren çok çeşitli karakter ve dilleri yönetmek zorunludur. PHP 8, Unicode ve çok baytlı (multibyte) dizeler için geliştirilmiş destek sağlayarak uygulamalarınızın farklı karakter kodlamalarını ve dilleri etkili bir şekilde işlemesini garanti eder.

6.4.1. Çok Baytlı Dize Fonksiyonları (mb_ Prefix)​

PHP, varsayılan ISO-8859-1 (Latin-1) dışındaki karakter kodlamalarıyla çalışmanıza olanak tanıyan bir dizi çok baytlı dize fonksiyonu (mb_ önekli) sunar. Bu fonksiyonlar, Çince, Japonca veya Arapça gibi çok baytlı karakterler kullanan dilleri işlemek için kritik öneme sahiptir.

Örnek: mb_strlen() ile Uzunluk Hesaplama
PHP:
$text = 'こんにちは、世界!'; // Japonca selamlama
$length = mb_strlen($text, 'UTF-8'); // Karakter kodlamasını belirtin (UTF-8)

echo "Dizenin uzunluğu: $length karakterdir.";
// Çıktı: Dizenin uzunluğu: 8 karakterdir.
Bu örnekte, mb_strlen(), Japonca selamlama dizesinin uzunluğunu doğru bir şekilde belirlemek için 'UTF-8' karakter kodlamasıyla birlikte kullanılır.

6.4.2. Çok Baytlı Dize Manipülasyonu​

mb_substr() fonksiyonu, karakterleri bölmeden çok baytlı bir dizenin bölümlerini ayıklamanıza olanak tanır. Bu, çok baytlı kodlama kullanan dillerde alt dizelerle çalışmak için hayati öneme sahiptir.

Örnek: mb_substr() ile Alt Dize Çıkarma
PHP:
$text = '你好,世界!'; // Çince selamlama
$substring = mb_substr($text, 0, 2, 'UTF-8'); // İlk iki karakteri çıkar

echo "Alt dize: $substring";
// Çıktı: Alt dize: 你好
Bu örnekte, mb_substr(), çok baytlı bir kodlamada bile, çıkarılan alt dizenin tam karakterlerden oluşmasını sağlar.

6.4.3. Karakter Kodlaması Dönüşümü​

PHP 8, farklı karakter kodlamaları arasında dönüşüm yapmak için mb_convert_encoding() gibi fonksiyonlar sağlar. Bu, çeşitli kodlamalarda gelen verilerle çalışmanız gerektiğinde kullanışlıdır.

Örnek: Kodlama Dönüşümü
PHP:
$text = 'Привет, мир!'; // Rusça selamlama (Windows-1251 kodlamasında olduğunu varsayalım)
$utf8Text = mb_convert_encoding($text, 'UTF-8', 'Windows-1251'); // Windows-1251'den UTF-8'e dönüştür

echo "UTF-8 kodlanmış metin: $utf8Text";
// Çıktı: UTF-8 kodlanmış metin: Привет, мир!
Bu örnekte, mb_convert_encoding(), bir dizeyi Windows-1251 kodlamasından UTF-8'e dönüştürmek için kullanılır.

6.4.4. Unicode Normalizasyonu​

Aynı karakterin farklı gösterimleriyle çalışırken Unicode normalizasyonu çok önemlidir. PHP 8, Unicode dizelerini normalleştirmek için mb_normalize() gibi fonksiyonlar sağlayarak tutarlılık sağlar.

Örnek: mb_normalize() ile Karakter Eşitleme
PHP:
$text1 = 'Café'; // Birleştirilmiş é
$text2 = 'Café'; // Ayrılmış e ve birleştirme aksanı

// Her iki metni de NFC (Bileşik Form) ile normalleştir.
$normalized1 = mb_normalize('NFC', $text1);
$normalized2 = mb_normalize('NFC', $text2);

echo "Eşdeğer mi? " . ($normalized1 === $normalized2 ? 'Evet' : 'Hayır');
// Çıktı: Eşdeğer mi? Evet
Bu örnekte, mb_normalize() kelimenin iki sürümünü NFC (bileşik form) olarak normalleştirmek için kullanılır ve onları eşdeğer hale getirir.

6.4.5. Dosya İşlemlerinde Unicode Karakterleri Yönetme​

Unicode karakterler içeren dosyalarla çalışırken, uygun karakter kodlamasını belirtmek esastır. Dosya okuma ve yazma işlemlerini çok baytlı karakter kodlamalarıyla doğru bir şekilde ele almak için mb_ fonksiyonlarını kullanabilirsiniz.

Örnek: Dosya İçeriğini Kodlama Dönüşümüyle Okuma
PHP:
$filename = 'unicode.txt';
$content = file_get_contents($filename); // Çok baytlı karakterler içeren dosyayı oku
$decodedContent = mb_convert_encoding($content, 'UTF-8', 'ISO-8859-1'); // İçeriği UTF-8'e dönüştür

echo $decodedContent;
Bu kodda, file_get_contents() çok baytlı karakterler içeren bir dosyayı okur ve ardından mb_convert_encoding() içeriği doğru işleme için UTF-8'e dönüştürür.

Özetle, PHP 8'in Unicode ve çok baytlı dizelere yönelik desteği, çeşitli karakter kodlamaları ve dillerle sorunsuz çalışan uygulamalar oluşturmak için hayati öneme sahiptir. mb_ fonksiyonları ve ilgili özellikler, PHP uygulamalarınızın modern uluslararasılaştırma ve yerelleştirme gereksinimlerinin karmaşıklıklarını doğru bir şekilde yönetebilmesini sağlar.
OyuncuSepeti
Üye
Üye
Katılım04 Ara 2025
Konular6
Mesajlar62
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
20.03.2026 14:41 #2
Paylaşım için teşekkürler
NuhYilmaz
Üye
Üye
Katılım04 Oca 2026
Konular4
Mesajlar64
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
19.04.2026 22:36 #3
Eline sağlık! Paylaşım için teşekkürler.
Bu konuyu görüntüleyenler
1 misafir
Cevap yazmak için giriş yapın.
İlan Yan banner placeholder