PHP Düzenli İfadeler (RegEx) Kütüphanesi

14 Mart 2012 Çarşamba, 04:45 sularında İzni Burak Demirtaş tarafından #php konularında yazılmış.
Yazıldığından bu yana, 5007 kez okunmuş ve 0 yorum almış.

Düzenli ifadeler yani Regular Expressions, yazılım yazılırken karşılaştığımız bazı durumlarda oldukça lazım olan bir yapıdır. Kısa adı RegEx olan bu yapıda, string bir ifade içerisinden belirtteceğimiz kurallara uygun şekilde değerler üretmemize olanak sağlanıyor. PHP diline göre örnek verecek olursam; örneğin, bir bot yazıyoruz ve kaynak sitemizden içerik alacağız. İçeriği alacağımız bölümün kaynak kodlarına göre RegEx yapısını kullanmamız icap edebilir.

Bir başka örnek ise, diyelim ki sitemize üye olan bir kullanıcının E-Posta adresini, telefon numarasını ve doğum tarihini kayıt edeceğiz. Kullanıcının gireceği değerleri RegEx ile kontrol ederek, belirtilen kurallara uygun olup olmadığını (mesela telefon numarası içerisinde rakam haricinde bir karakter kullanılmaması veya e-posta adresinde x@y.zzz gibi bir yapının bulunması) kontrol edebiliriz. Örneklerden de anlayacağımız gibi, RegEx belli başlı durumlara göre hayat kurtarıcımız olabiliyor :) 

Benim gibi PHP ile uğraşan arkadaşlara kolaylık olması açısından bazı RegEx desenleri paylaşayım:


Domain (Alan Adı) Kontrolü

<?php
 $url = "http://burakdemirtas.org/";
 if (preg_match('/^(http|https|ftp)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):?(d+)?/?/i', $url)) { echo "Doğru URL"; }
 else { echo "Yalnış URL"; }


E-Posta Kontrolü RegEx kalıbı ve filter_var kullanımı:

<?php
 $email = "eposta@ornek.com";
 if (preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$email)) { echo "Doğru E-Posta"; }
 else { echo "Yanlış E-Posta"; }
<?php
 if (filter_var('ornek+eposta@ornek.com', FILTER_VALIDATE_EMAIL)) { echo "Doğru E-Posta"; }
 else { echo "Yanlış E-Posta"; }


IP adresi kontrolü RegEx kalıbı:

<?php
 $ip = "173.192.115.94";
 if (preg_match('/^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/',$ip)) { echo "Doğru IP Adresi."; }
 else { echo "Yanlış IP Adresi"; }


Kredi Kartı Numarası kontrolü RegEx kalıbı:

<?php
 $kartNo = "5588320123456789";
 if (preg_match('/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6011[0-9]{12}|3(?:0[0-5]|[68][0-9])[0-9]{11}|3[47][0-9]{13})$/', $kartNo)) { echo "Doğru Kart Numarası."; }
 else { echo "Yanlış Kart Numarası"; }

Daha çok kalıp buldukça bu yazıyı güncelleyip sizinle paylaşacağım. Umarım faydasını görürsünüz. İyi kullanımlar.


Yorumunu Gönder     Sende görüşünü yaz!

Hiç yorum yapılmamış.   İlk yorumu sen yap!

PHP 8'e Hızlı Bakış

Merhabalar. PHP 8 ile birlikte hayatımıza neler gelecek, neler değişecek birlikte göz atmaya var mısınız? Haydi başlayalım o zaman…
...

15 Haziran 2020, 17:55   —   #php   —   Yorum yok.   —   Devamını Oku »

Selamlar. Ramazan ayının ve sahuru beklemek bahanesiyle gece geç saatlere kadar takılmanın vermiş olduğu yetkiye dayanarak yine bazı projeler üzerine çalışıyor, bazı araştırmalar yapıyor ve müzik dinliyordum. Ve birden "uzun zamandır bir şeyler karalamıyorum ben ya" diye bir düşünce geçti beynimin derinliklerinden. Hemen buraya geldim....

11 Mayıs 2020, 03:05   —   #karalamaca   —   Yorum yok.   —   Devamını Oku »

React Hooks: useState - useLayoutState

React’in 16.8 versiyonu ile birlikte hayatımıza Hook kavramı girdi. Artık çok daha az kod ile daha efektif React Componentleri yazabiliyoruz. Hooks konusu ile ilgili detaylı bilgiyi React’in kendi dokümantasyonundan okuyabilir, bilgi sahibi olabilirsiniz....

18 Şubat 2020, 14:00   —   #web   —   1 yorum var.   —   Devamını Oku »

PHP 7.4'e Hızlı Bakış

PHP 7.4 ile birlikte hayatımıza girecek olan özelliklere şöyle hızlıca bir bakış atmaya ne dersiniz?
...

5 Eylül 2019, 11:31   —   #php   —   Yorum yok.   —   Devamını Oku »

React ile High Order Component (HOC) kullanımı

React ile High Order Component kavramını sizlere anlatmaya çalışacağım....

17 Ağustos 2019, 11:46   —   #web   —   Yorum yok.   —   Devamını Oku »

Selamlar, oldukça uzun bir zaman sonra tekrar buralardayım. Dolu dolu geldim ama; biraz oturun, konuşalım....

16 Şubat 2019, 22:23   —   #genel   —   Yorum yok.   —   Devamını Oku »

Yine aylar olmuş ve buralarda gözükmüyorum. Ne zaman "buralara daha çok vakit ayıracağım, bol bol yazacağım" desem, kesin başka bir şeyler çıkıyor; işler, güçler, yoğunluklar vs, odaklanamıyorum. Öyle ya da böyle bunu bir düzene oturtacağım. inatçıyım bu konuda....

8 Temmuz 2018, 04:55   —   #genel   —   Yorum yok.   —   Devamını Oku »
daha fazla göster