7 Haziran 2007 Perşembe

PHP ile Metin Fonksiyonları

Merhaba Webkolog takipçileri!

Web geliştirmenin olmazsa olmazlarından biri de metinlerle çalışmaktır. Kullanıcı girdilerinden veritabanı kayıtlarına, sayfa içeriklerinden mesajlaşmalara kadar her yerde metinlerle iç içeyiz. PHP, bu metinleri (yani "string"leri) manipüle etmek, dönüştürmek, aramak ve formatlamak için inanılmaz derecede zengin bir fonksiyon kütüphanesine sahiptir. Bu makalede, PHP'nin metin fonksiyonlarının gücünü keşfedeceğiz. Gelin, kodlarımızda metinleri nasıl ustaca yönetebileceğimize bakalım!


1. Temel Metin İşlemleri ve Bilgi Alma

Bir metnin uzunluğunu öğrenmek, karakterlerini değiştirmek veya özel karakterleri yönetmek en temel ihtiyaçlarımızdandır.


<?php
$metin = "Merhaba Webkolog, bugün nasılsın?";

// Metnin uzunluğunu döndürür: strlen()
echo "Metin uzunluğu: " . strlen($metin) . " karakter.<br>"; // Çıktı: 31

// Metin içerisindeki bir bölümü alır: substr()
echo "Metinden bir parça (ilk 7 karakter): " . substr($metin, 0, 7) . "<br>"; // Çıktı: Merhaba
echo "Metinden bir parça (7. karakterden sonrasına kadar): " . substr($metin, 7) . "<br>"; // Çıktı:  Webkolog, bugün nasılsın?
echo "Metinden bir parça (sondan 8 karakter): " . substr($metin, -8) . "<br>"; // Çıktı: nasılsın?

// Bir karakterin ASCII değerini döndürür: ord()
echo "'A' karakterinin ASCII değeri: " . ord('A') . "<br>"; // Çıktı: 65

// ASCII değerinden karakteri döndürür: chr()
echo "ASCII 97'nin karakteri: " . chr(97) . "<br>"; // Çıktı: a

// Tek tırnak veya çift tırnak karakterlerini kaçırır: addslashes()
$mesaj = "Bugün 'güzel' bir gün.";
echo "addslashes sonrası: " . addslashes($mesaj) . "<br>"; // Çıktı: Bugün \'güzel\' bir gün.
?>

2. Metinlerde Arama ve Değiştirme

Bir metin içinde belirli kelimeleri veya karakterleri aramak, bulmak ve değiştirmek sıklıkla yaptığımız işlemlerdir.


<?php
$cumle = "PHP programlama çok eğlenceli bir dildir. PHP öğrenmek harika!";

// Metin içinde belirli bir karakter katarının ilk geçtiği konumu döndürür: strpos()
$pos = strpos($cumle, "PHP");
echo "PHP kelimesi ilk olarak " . $pos . ". konumda bulundu.<br>"; // Çıktı: 0

// Metin içinde belirli bir karakter katarının son geçtiği konumu döndürür: strrpos() (PHP 5.0 ve sonrası)
// Eski PHP versiyonları için genelde döngü ile veya alternatif yollarla bulunur.
// Şimdilik 5.2'ye uygun değil.

// Metin içinde, belirtilen tüm karakter katarlarını yenileri ile değiştirir: str_replace()
$yeniCumle = str_replace("PHP", "JavaScript", $cumle);
echo "str_replace sonrası: " . $yeniCumle . "<br>"; // Çıktı: JavaScript programlama çok eğlenceli bir dildir. JavaScript öğrenmek harika!

// Büyük/küçük harf duyarlılığı olmadan değiştirir: str_ireplace() (PHP 5.0 ve sonrası)
// Yine 5.2'ye uygun değil.

// Bir metin içindeki bir bölümü başka bir metinle değiştirir: substr_replace()
$orjinal = "Bu bir test cümlesidir.";
$degisen = substr_replace($orjinal, "deneme", 7, 4); // 7. karakterden başlayarak 4 karakteri "deneme" ile değiştir
echo "substr_replace sonrası: " . $degisen . "<br>"; // Çıktı: Bu bir deneme cümlesidir.

// Metin içinde aranılan karakter katarının ilk geçtiği yerden sonrasını döndürür (büyük/küçük harf duyarlı): strstr()
echo "strstr (PHP): " . strstr($cumle, "PHP") . "<br>"; // Çıktı: PHP programlama çok eğlenceli bir dildir. PHP öğrenmek harika!

// Metin içinde aranılan karakter katarının ilk geçtiği yerden sonrasını döndürür (büyük/küçük harf duyarsız): stristr()
echo "stristr (php): " . stristr($cumle, "php") . "<br>"; // Çıktı: PHP programlama çok eğlenceli bir dildir. PHP öğrenmek harika!

// Metin içinde aranılan karakter katarının son geçtiği yerden sonrasını döndürür: strrchr()
echo "strrchr (a): " . strrchr($cumle, "a") . "<br>"; // Çıktı: a!

// Metni parçalara ayırır (token): strtok()
$veri = "elma,armut,çilek";
$token = strtok($veri, ",");
while ($token !== false) {
    echo "Token: " . $token . "<br>";
    $token = strtok(",");
}
/* Çıktı:
Token: elma
Token: armut
Token: çilek
*/
?>

3. Büyük/Küçük Harf Dönüşümleri

Metinlerde harf büyüklüğünü ayarlamak, standartlaştırma veya sunum için önemlidir.


<?php
$baslik = "php ile programlama";

// Tüm karakterleri büyük harfe çevirir: strtoupper()
echo "strtoupper sonrası: " . strtoupper($baslik) . "<br>"; // Çıktı: PHP ILE PROGRAMLAMA

// Tüm karakterleri küçük harfe çevirir: strtolower()
$BUYUK_BASLIK = "WEBKOLOG BLOG";
echo "strtolower sonrası: " . strtolower($BUYUK_BASLIK) . "<br>"; // Çıktı: webkolog blog

// Bir metindeki ilk kelimenin ilk harfini büyük harfe çevirir: ucfirst()
echo "ucfirst sonrası: " . ucfirst("webkolog blog") . "<br>"; // Çıktı: Webkolog blog

// Metin içindeki her kelimenin ilk harfini büyük harfe çevirir: ucwords()
echo "ucwords sonrası: " . ucwords("webkolog blog geliştirme") . "<br>"; // Çıktı: Webkolog Blog Geliştirme
?>

4. Boşluk ve Etiket Yönetimi

Metinlerdeki gereksiz boşlukları temizlemek veya HTML/PHP etiketlerini kaldırmak, veri güvenliği ve temizliği için elzemdir.


<?php
$boslukluMetin = "   Merhaba Dünya!   ";
$htmlMetin = "<p>Bu bir <b>HTML</b> metnidir.</p>";

// Metnin başındaki ve sonundaki boşlukları siler: trim()
echo "trim sonrası: '" . trim($boslukluMetin) . "'<br>"; // Çıktı: 'Merhaba Dünya!'

// Metnin başındaki (soldaki) boşlukları siler: ltrim()
echo "ltrim sonrası: '" . ltrim($boslukluMetin) . "'<br>"; // Çıktı: 'Merhaba Dünya!   '

// Metnin sonundaki (sağdaki) boşlukları siler: rtrim() veya chop()
echo "rtrim sonrası: '" . rtrim($boslukluMetin) . "'<br>"; // Çıktı: '   Merhaba Dünya!'
echo "chop sonrası: '" . chop($boslukluMetin) . "'<br>"; // Çıktı: '   Merhaba Dünya!'

// Metindeki HTML ve PHP etiketlerini kaldırır: strip_tags()
echo "strip_tags sonrası: " . strip_tags($htmlMetin) . "<br>"; // Çıktı: Bu bir HTML metnidir.

// Belirli etiketlere izin vererek kaldırır
$izinliHtmlMetin = strip_tags($htmlMetin, '<b>');
echo "strip_tags (izinli etiket) sonrası: " . $izinliHtmlMetin . "<br>"; // Çıktı: Bu bir HTML metnidir.

// HTML'deki özel karakterleri (>, <, ", ', &) HTML varlıklarına dönüştürür: htmlspecialchars()
$rawHtml = "<script>alert('XSS');</script>";
echo "htmlspecialchars sonrası: " . htmlspecialchars($rawHtml) . "<br>"; // Çıktı: &lt;script&gt;alert('XSS');&lt;/script&gt;

// Tüm uygun karakterleri HTML varlıklarına dönüştürür: htmlentities()
// (htmlspecialchars'tan daha kapsamlıdır, örn. Türkçe karakterleri de dönüştürebilir)
$turkceMetin = "çilek&armut";
echo "htmlentities sonrası: " . htmlentities($turkceMetin) . "<br>"; // Çıktı: çilek&amp;armut

// htmlentities ile kodlanmış karakterlerin kodunu çözer: html_entity_decode()
$kodlanmisMetin = "&lt;b&gt;Merhaba&lt;/b&gt;";
echo "html_entity_decode sonrası: " . html_entity_decode($kodlanmisMetin) . "<br>"; // Çıktı: <b>Merhaba</b>
?>

5. Biçimlendirme ve Diğer Fonksiyonlar

Sayıları formatlamak, metinleri bölmek veya özel durumlar için kullanılan diğer fonksiyonlar.


<?php
$buyukSayi = 1234567.89;

// Rakamları binlik basamak grubu için formatlar: number_format()
echo "number_format (Türkçe): " . number_format($buyukSayi, 2, ',', '.') . "<br>"; // Çıktı: 1.234.567,89

// Metni belirli bir uzunlukta parçalara ayırır: chunk_split()
$uzunMetin = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
echo "chunk_split sonrası: " . chunk_split($uzunMetin, 4, '-') . "<br>"; // Çıktı: ABCD-EFGH-IJKL-MNOP-QRST-UVWX-YZ-

// Belirli bir karakteri istenilen ölçüde tekrarlar: str_repeat()
echo "str_repeat sonrası: " . str_repeat("-", 20) . "<br>"; // Çıktı: --------------------

// Metindeki yeni satır karakterlerini <br> etiketlerine dönüştürür: nl2br()
$satirliMetin = "Satır 1\nSatır 2\nSatır 3";
echo "nl2br sonrası:<br>" . nl2br($satirliMetin) . "<br>";
/* Çıktı:
Satır 1
Satır 2
Satır 3 */ // Metindeki URL tarzı verileri değişkenlere çevirir: parse_str() $urlQuery = "ad=Ali&yas=30&sehir=Ankara"; parse_str($urlQuery); echo "parse_str sonrası: Ad: " . $ad . ", Yaş: " . $yas . ", Şehir: " . $sehir . "<br>"; // Çıktı: Ad: Ali, Yaş: 30, Şehir: Ankara // Özel karakterleri kaçırmak için kullanılır (düzenli ifadeler için): quotemeta() $ozelKarakterler = "Bu metinde dolar $ ve nokta. var."; echo "quotemeta sonrası: " . quotemeta($ozelKarakterler) . "<br>"; // Çıktı: Bu metinde dolar \$ ve nokta\. var\. // MD5 şifreleme: md5() $sifrelenecek = "gizlisifre"; echo "MD5 şifreleme: " . md5($sifrelenecek) . "<br>"; // Çıktı: (32 karakterlik bir hash) // SHA1 şifreleme: sha1() echo "SHA1 şifreleme: " . sha1($sifrelenecek) . "<br>"; // Çıktı: (40 karakterlik bir hash) // Cümleleri belirli bir genişliğe göre alta kaydırır: wordwrap() $uzunCumle = "Bu çok uzun bir cümle ve wordwrap fonksiyonu ile belirli bir genişlikte alt satıra geçmesini sağlayabiliriz."; echo "wordwrap sonrası:<br>" . wordwrap($uzunCumle, 30, "<br>\n", false) . "<br>"; /* Çıktı: Bu çok uzun bir cümle ve
wordwrap fonksiyonu ile
belirli bir genişlikte alt
satıra geçmesini sağlayabiliriz. */ // Benzersiz bir ID oluşturur: uniqid() echo "Benzersiz ID (13 karakter): " . uniqid() . "<br>"; echo "Benzersiz ID (23 karakter, true ile): " . uniqid('', true) . "<br>"; // Daha entropik bir ID ?>

PHP'nin metin fonksiyonları, metin tabanlı verilerle çalışan her PHP geliştiricisinin olmazsa olmazıdır. Bu fonksiyonlar sayesinde verileri temizleyebilir, formatlayabilir, arayabilir ve dönüştürebilirsiniz. Güvenli web uygulamaları geliştirmek ve kullanıcı dostu çıktılar sunmak için bu araçları ustaca kullanmak büyük önem taşır. Pratik yaparak bu fonksiyonları kendi projelerinizde kullanmaktan çekinmeyin!

Webkolog'u takipte kalın!

Hepinize bol kodlu ve başarılı projeler dilerim!

0 yorum:

Yorum Gönder