#php substr örnek
Explore tagged Tumblr posts
izmirphpdeveloper · 2 years ago
Text
PHP substr fonksiyonu ve örnek kullanımları
PHP substr fonksiyonu, PHP programlama dilinde oldukça yaygın olarak kullanılan bir fonksiyondur. Bu fonksiyon, bir karakter dizisinden belirli bir alt diziyi (substring) çıkarmak için kullanabilirsiniz. PHP substr fonksiyonu, özellikle web geliştirme pro
PHP substr fonksiyonu, PHP programlama dilinde oldukça yaygın olarak kullanılan bir fonksiyondur. Bu fonksiyon, bir karakter dizisinden belirli bir alt diziyi (substring) çıkarmak için kullanabilirsiniz. PHP substr fonksiyonu, özellikle web geliştirme projelerinde, veritabanı işlemlerinde, metin işleme uygulamalarında ve birçok diğer PHP projelerinizde yararlanabilirsiniz. Ancak, substr…
Tumblr media
View On WordPress
0 notes
rilura · 8 years ago
Text
PHP ile IBAN doğrulama yöntemleri (bütün ülkeler için)
1 Ocak 2010 tarihiyle birlikte bankalar arasında para transferi için IBANkullanmak zorunlu hale getirildi. işlemlerin IBAN isimli bu standart hesap numaraları ile yapılmasının amacı, para transferlerinde karşılaşılan problemlerin üstesinden gelebilmek. Biz işin yazılım kısmına gelirsek; bu IBAN girdilerini doğrulatmak için sizlere 3 farklı yöntemden bahsedeceğim. Bu yöntemleri bütün ülkelerin bütün IBAN girdilerini doğrulatmak için kullanabililirsiniz.
1. Yöntem: “is_iban()” isimli fonksiyonu kullanmak
is_iban.php dosyasını ilgili php sayfanıza include/require ediyorsunuz.
* NOT: * Tüm ülkeler için maksimum IBAN uzunluğu 31 karakter olabilir * TÜRKİYE için maksimum IBAN uzunluğu 26 karakter olabilir * * yazar: Erhan BURHAN * email: eburhan[at]gmail[dot]com * adres: www.eburhan.com */ function is_IBAN($iban = '') // ilk önce formatı kontrol ediyoruz if( ! is_IBAN_format($iban) ) return false; // şimdi de algoritmayla kontrol ediyoruz $iban = substr($iban, 4, 22).substr($iban,0,4); $iban = str_replace( array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'), array(10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35), $iban ); // oluşan sayıyı 5'li basamaklara ayırıyoruz $iban = str_split($iban, 5); $max = count($iban) - 1; // en büyük indis sayısı $i = 0; // 5 parçaya ayırdığımız sayıların tek tek modunu alıyoruz. Yararlandığım kaynak: // http://en.wikipedia.org/wiki/International_Bank_Account_Number#Calculating_the_modulus_of_a_large_number while ($i <= $max) $kalan = $iban[$i] % 97; if( ++$i > $max ) break; // önceden arttırmaya dikkat ! $iban[$i] = $kalan.$iban[$i]; return ($kalan === 1); function is_IBAN_format($iban = '') // son RegEx güncellemesi: Ocak 2010 \\ $ibanRegex = array ( /* 01 */ 'AL' => '/^AL\d2\d8[A-Za-z0-9]16$/', /* 02 */ 'AD' => '/^AD\d2\d4\d4[A-Za-z0-9]12$/', /* 03 */ 'AT' => '/^AT\d2\d5\d11$/', /* 04 */ 'BE' => '/^BE\d2\d3\d7\d2$/', /* 05 */ 'BA' => '/^BA\d2\d3\d3\d8\d2$/', /* 06 */ 'BG' => '/^BG\d2[A-Z]4\d4\d2[A-Za-z0-9]8$/', /* 07 */ 'HR' => '/^HR\d2\d7\d10$/', /* 08 */ 'CY' => '/^CY\d2\d3\d5[A-Za-z0-9]16$/', /* 09 */ 'CZ' => '/^CZ\d2\d4\d6\d10$/', /* 10 */ 'DK' => '/^DK\d2\d4\d9\d1$/', /* 10 */ 'FO' => '/^FO\d2\d4\d9\d1$/', /* 10 */ 'GL' => '/^GL\d2\d4\d9\d1$/', /* 11 */ 'EE' => '/^EE\d2\d2\d2\d11\d1$/', /* 12 */ 'FI' => '/^FI\d2\d6\d7\d1$/', /* 13 */ 'FR' => '/^FR\d2\d5\d5[A-Za-z0-9]11\d2$/', /* 13 */ 'PF' => '/^PF\d2\d5\d5[A-Za-z0-9]11\d2$/', /* 13 */ 'TF' => '/^TF\d2\d5\d5[A-Za-z0-9]11\d2$/', /* 13 */ 'YT' => '/^YT\d2\d5\d5[A-Za-z0-9]11\d2$/', /* 13 */ 'NC' => '/^NC\d2\d5\d5[A-Za-z0-9]11\d2$/', /* 13 */ 'PM' => '/^PM\d2\d5\d5[A-Za-z0-9]11\d2$/', /* 13 */ 'WF' => '/^WF\d2\d5\d5[A-Za-z0-9]11\d2$/', /* 14 */ 'DE' => '/^DE\d2\d8\d10$/', /* 15 */ 'GI' => '/^GI\d2[A-Z]4[A-Za-z0-9]15$/', /* 16 */ 'GR' => '/^GR\d2\d3\d4[A-Za-z0-9]16$/', /* 17 */ 'HU' => '/^HU\d2\d3\d4\d1\d15\d1$/', /* 18 */ 'IS' => '/^IS\d2\d4\d2\d6\d10$/', /* 19 */ 'IE' => '/^IE\d2[A-Z]4\d6\d8$/', /* 20 */ 'IL' => '/^IL\d2\d3\d3\d13$/', /* 21 */ 'IT' => '/^IT\d2[A-Z]1\d5\d5[A-Za-z0-9]12$/', /* 22 */ 'LV' => '/^LV\d2[A-Z]4[A-Za-z0-9]13$/', /* 23 */ 'LB' => '/^LB\d2\d4[A-Za-z0-9]20$/', /* 24 */ 'LI' => '/^LI\d2\d5[A-Za-z0-9]12$/', /* 25 */ 'LT' => '/^LT\d2\d5\d11$/', /* 26 */ 'LU' => '/^LU\d2\d3[A-Za-z0-9]13$/', /* 27 */ 'MK' => '/^MK\d2\d3[A-Za-z0-9]10\d2$/', /* 28 */ 'MT' => '/^MT\d2[A-Z]4\d5[A-Za-z0-9]18$/', /* 29 */ 'MU' => '/^MU\d2[A-Z]4\d2\d2\d12\d3[A-Z]3$/', /* 30 */ 'MC' => '/^MC\d2\d5\d5[A-Za-z0-9]11\d2$/', /* 31 */ 'ME' => '/^ME\d2\d3\d13\d2$/', /* 32 */ 'NL' => '/^NL\d2[A-Z]4\d10$/', /* 33 */ 'NO' => '/^NO\d2\d4\d6\d1$/', /* 34 */ 'PL' => '/^PL\d2\d8\d1,16$/', /* 35 */ 'PT' => '/^PT\d2\d4\d4\d11\d2$/', /* 36 */ 'RO' => '/^RO\d2[A-Z]4[A-Za-z0-9]16$/', /* 37 */ 'SM' => '/^SM\d2[A-Z]1\d5\d5[A-Za-z0-9]12$/', /* 38 */ 'SA' => '/^SA\d2\d2[A-Za-z0-9]18$/', /* 39 */ 'RS' => '/^RS\d2\d3\d13\d2$/', /* 40 */ 'SK' => '/^SK\d2\d4\d6\d10$/', /* 41 */ 'SI' => '/^SI\d2\d5\d8\d2$/', /* 42 */ 'ES' => '/^ES\d2\d4\d4\d1\d1\d10$/', /* 43 */ 'SE' => '/^SE\d2\d3\d16\d1$/', /* 44 */ 'CH' => '/^CH\d2\d5[A-Za-z0-9]12$/', /* 45 */ 'TN' => '/^TN59\d2\d3\d13\d2$/', /* 46 */ 'TR' => '/^TR\d2\d5[A-Za-z0-9]1[A-Za-z0-9]16$/', /* 47 */ 'GB' => '/^GB\d2[A-Z]4\d6\d8$/' ); $ulke = substr((string) $iban, 0, 2); if( ! isset($ibanRegex[$ulke]) ) return false; if( preg_match($ibanRegex[$ulke], $iban) === 0 ) return false; return true; ?>
  Daha sonra herhangi bir IBAN girdisini aşağıdaki örnekte olduğu gibi doğrulatabilirsiniz.
<?php require 'is_iban.php'; $iban = 'RO49AAAA1B31007593840000'; if( is_IBAN($iban) ) echo 'IBAN geçerli'; else echo 'IBAN geçersiz !'; ?>
2. Yöntem: formDogrula için “iban” eklentisini kullanmak
Eğer IBAN girdisini bir formdan alıp doğruluğunu kontrol ettirecekseniz ve form girdilerini doğrulatmak için benim formDogrula (fdo) sınıfımı kullanıyorsanız bu eklenti tam size. Hemen http://formdogrula.com/eklentiler-gonullu.html sayfasından “iban” eklentisini indirin ve formDogrula (fdo)sınıfının “eklentiler” klasörüne kopyalayın. Artık eklentiyi aşağıdaki gibi kolay bir şekilde kullanabilirsiniz:
<?php // formDogrula sınıfını çağır require '../eb.formDogrula.php'; // formDogrula nesneni oluştur $fdo = new formDogrula('form1', 'post'); // kural ekle $fdo->kural('iban', 'IBAN', 'gerekli|dolu|iban'); // formu doğrulat if( ! $fdo->dogrulat() ) echo 'Lütfen formu kontrol ediniz. Aşağıdaki hatalar oluştu:'; echo '<ul>'; $fdo->yazHatalar('<li>', '</li>', true); echo '</ul>'; else echo "Tebrikler. Form başarıyla doğrulandı."; ?>
3. Yöntem: “Zend_Validate_Iban” sınıfını kullanmak
Eğer Zend Framework kullanarak birşeyler geliştiriyorsanız o zaman ekstra birşeyler indirmenize gerek yok demek, çünkü ZF içerisinde IBAN doğrulama için hazır bir sınıf var. ZF dökümanındaki Standard Validation Classes sayfasından daha fazla bilgi alabileceğiniz bu sınıfı şu şekilde kullanabiliyorsunuz:
<?php $validator = new Zend_Validate_Iban(); $iban = 'AT611904300234573201'; if ($validator->isValid($iban)) echo 'IBAN geçerli'; else echo 'IBAN geçersiz'; ?>
Sonuç
3. yöntem hariç, diğer yöntemlerdeki kodları kendim yazdım. Bunun için ISO13616 IBAN Registrysayfasındaki dökümanlardan ve Özgür Ansiklopedi’deki International Bank Account Number sayfasındaki bilgilerden yararlandım. Ve ayrıca, 1. yöntemdeki fonksiyonu kullanarak örnek bir doğrulama sayfası da hazırladım. IBAN girdilerini bu sayfadan basit, hızlı bir şekilde doğrulatabilirsiniz. Bu sayfada herhangi bir bilgi tutulmamaktadır. Güvenle kullanabilirsiniz 
  PHP ile IBAN doğrulama yöntemleri (bütün ülkeler için)
0 notes