Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

1 PHP – Metinler ve Düzenli İ fadeler Internet Tabanlı Programlama Dr. Erman Yukselturk.

Benzer bir sunumlar


... konulu sunumlar: "1 PHP – Metinler ve Düzenli İ fadeler Internet Tabanlı Programlama Dr. Erman Yukselturk."— Sunum transkripti:

1 1 PHP – Metinler ve Düzenli İ fadeler Internet Tabanlı Programlama Dr. Erman Yukselturk

2 2 function buldum($filename,$isim,$email,&$bulundu){ $ara=fopen($filename,"r"); while (!feof ($ara)) { $satir=fgets($ara,4096); $dataarray=split(',',$satir); if(($dataarray[1]==$isim) && ($dataarray[2]==$email)){ $bulundu=true; fclose($ara); return $dataarray; }

3 3 Normal İfadeler / Köşeli Parantezler Köşeli parantezler [] eşleştirilmek istenen bir liste veya aralığı ifade ederler.  [0-9] ifadesi 0’dan 9’a kadar olan sayısal değerleri ifade ederler.  [a-z] ifadesi a’dan z’ye kadar olan küçük harfleri ifade ederler.  [A-Z] ifadesi A’dan Z’ye kadar olan büyük harfleri ifade ederler.  [a-zA-Z0-9] ifadesi 0’dan 9’a, a’dan z’ye küçük harfleri ve A’dan Z’ye büyük harfleri ifade ederler.

4 4 Normal İfadeler / Miktarlar  p+ en azından bir tane p içeren metinler  p* hiç veya birden fazla p içeren metinler.  p? hiç veya 1 tane p içeren metinler.  p{2} ardışık 2 tane p içeren metinler.  p{2,3} ardışık 2 veya 3 tane p içeren metinler.  p{2,} ardışık en az 2 tane p içeren metinler.  p$ en son karakteri p olan metinler  ^p başında p olan bütün metinler  [^a-zA-Z] a’dan z’ye veya A’dan Z’ye bir karakter bulundurmayan metinler  p.p ile başlayıp başka bir karakter ile devam eden ve sonra tekrar p içeren metinler

5 5 Normal İfadeler / Miktarlar  ^.{2}$ 2 karakter uzunluğunda olan metinler  (.*) ve arasında kalan bütün metinler  p(hp)* içerinde p olan ve bu p’yi takip eden 0 veya birden çok ph içeren bütün metinler.  Özel karakterleri arattırmak için önüne \ işareti koyabilirsiniz. ([\$])([0-9]+) bu $ işareti ile başlayıp bir veya daha fazla rakam içeren değerler

6 6 Normal İfadeler / Önceden Belirlenmiş  [:alpha:]: küçük ve büyük harfler veya [A-Za-z].  [:alnum:]: küçük, büyük harfler ve sayılar veya [A-Za- z0-9].  [:cntrl:]: Kontrol karakterleri tab, escape, or backspace.  [:digit:]: rakamlar 0’dan 9’a veya [0-9].  [:graph:]: ASCII tablosunda 3’den 126’ya yazılabilen karakterler.  [:lower:]: küçük harfler veya [a-z].  [:punct:]: noktalama işaretleri ~ ` ! @ # $ % ^ & * ( ) - _ + = { } [ ] : ; ',. ? ve /.  [:upper:]: büyük harfler [A-Z].  [:space:]: boşluk karakterleri boşluk, yatay tab, dikey tab, yeni satır vs…  [:xdigit:]: Hexadecimal karakterler veya [a-fA-F0-9].

7 7 PHP’de tanımlı ifade fonksiyonları $kullaniciIsmi = "Ercan"; if (ereg("([^a-z])", $kullaniciIsmi)) echo "kullanici ismi kucuk harflerden olusmalidir!"; else echo "Butun karakterler kucuk harflerden olusuyor."; IP if (ereg('^([0-9]{1,3}\.){3}[0-9]{1,3}$',$var)) URL: if (ereg("^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu)$",$var)) Telefon numarası "^(\()?([0-9]{3})(\))?( )?([0-9]{3})( )?(\-)?( )?([0-9]{4})$";

8 8 PHP’de tanımlı ifade fonksiyonları $url = "http://www.ibu.edu.tr"; ereg("^(http://www)\.([[:alnum:]]+)\.([[:alnu m:]]+)\.([[:alnum:]]+)", $url, $dizi); echo $dizi[0]." "; echo $dizi[1]." "; echo $dizi[2]." "; echo $dizi[3]." "; echo $dizi[4];

9 9 PHP’de tanımlı ifade fonksiyonları $string="Abant İzzet Baysal Üniversitesi"; if (eregi("ü", $string)) { echo "'$string' metininde ü veya Ü harfi bulunur!";} $string="Abant İzzet Baysal Üniversitesi"; if (ereg("ü", $string)) { echo "'$string' metininde ü veya Ü harfi bulunur!";} $pswd = "ercanphp"; if (!eregi("^[a-zA-Z0-9]{8,10}$", $pswd)) echo "Gecersiz sifre!"; else echo "Gecerli sifre!";

10 10 PHP’de tanımlı ifade fonksiyonları $string = "Tubitak linki http://www.tubitak.org/."; echo ereg_replace("http://([a-zA-Z0-9./- ]+)$", " \\0 ", $string); $string = "This is a test"; echo ereg_replace("( )is", “was", $string); $string = "Dershanede yapilan ilk Quiz sonuclari "; echo eregi_replace("( )quiz", "vize", $string );

11 11 PHP’de tanımlı ifade fonksiyonları $tarih = "30.04.1973"; list($gun, $ay, $yil) = split("\.", $tarih); echo "Gün: $gun Ay: $ay Yıl: $yil \n"; $cumle = "Ben Abant İzzet Baysal Universitesinde okuyorum"; print_r(split(" ",$cumle)); //Array ( [0] => Ben [1] => Abant [2] => İzzet [3] => Baysal [4] => Universitesinde [5] => okuyorum ) Spliti (küçük büyük harfe duyarlı değil) $versiyon = "php 4.0"; echo sql_regcase($versiyon); //[Pp][Hh][Pp] 4.0

12 12 Perl’de tanımlı ifade fonksiyonları /food/ /fo+/ (food, fool, fo4, foolish, …) /fo{2,4}/ (fool, foool, foolish, football, …)

13 13 Perl’de tanımlı ifade fonksiyonları Niteleyiciler (Modifier) i küçük büyük harfe duyarsız arama yapar g bütün uygulamalarını bulur m metin’e birden çok satırmış gibi davranır. ^ ve $ karakterleri en baştaki ve en sondaki karakterlere karşılık gelir. s metine bir satırmış gibi davranır. Yeni satır karakterlerini görmezden gelir. m niteleyicisinin tam karşıtıdır. x boşlukları yok sayar U ilk eşleşmede durur.

14 14 Perl’de tanımlı ifade fonksiyonları Değişim karakterleri (Metacharacter) \A: sadece metinin en başındaki eşleşmeyi yapar. \b: sınırdaki kelimeyi eşleştirir. \B: herhangi bir sınırdaki eşleşmeyi yapar. \d: rakam eşleşmesini yapar, [0-9] ile aynı işlevi görür. \D: rakam haricindeki herhangi bir eşleşmeyi yapar. \s: sadece boşluk eşleştirmelerini yapar. \S: boşluk haricindeki eşleşmeleri yapar. []: karakter grubunu kapsar. (): karakter grubunu kapsar veya önceki bir referansı tanımlar.

15 15 Perl’de tanımlı ifade fonksiyonları Değişim karakterleri (Metacharacter) /devam $: satırın en sonunu eşleştirir. ^: satırın en başını eşleştirir..: yeni satır haricindeki herhangi bir karakteri eşleştirir. \: bir sonraki değişim karakterini parantez içine alır. \w: sadece harfler, rakamlar ve altçizgiyi eşleştirir, [a-zA-Z0-9_] ile aynıdır. \W: \w’nin tam tersini eşleştirir. Rakam, harfler ve alt çizgi haricindeki karakterler.

16 16 Perl’de tanımlı ifade fonksiyonları Değişim karakterleri (Metacharacter) /Örn Sonunda an olan isimleri seçelim Ercan, nurcan, ertan, mercan vs… /an\b/ İlk linux geçen kelimeyi bulur (küçük büyük harfe duyarlı olmayan) /\blinux\b/i /\$\d+\g $işaretinden sonra değerleri olan bütün metinleri verir.

17 17 PHP’deki tanımlı ifade fonksiyonları $yiyeceklers = array("pasta", "biftek", "kumpir", "patetes"); $yiyecekler = preg_grep("/^p/", $yiyeceklers); print_r($yiyecekler); //Array ( [0] => pasta [3] => patetes ) $satir = "vim simdiye kadar piyasaya sürülen en iyi kelime islemci programidir!"; if (preg_match("/\bVim\b/i", $satir)) print "Eşleşme bulundu!";

18 18 PHP’deki tanımlı ifade fonksiyonları $kullanici = "Isim: Arda Şanlı Ünvan: PHP Uzmanı "; preg_match_all("/ (.*) /U", $kullanici, $dizi); printf("%s %s", $dizi[0][0], $dizi[0][1]); //$ ^ * ( ) + = { } [ ] | \\ :. $metin = "Maç bileti için 3*40 toplam 120 YTL ödedim."; echo preg_quote($metin); //Maç bileti için 3\*40 toplam 120 YTL ödedim \. $metin = "Odtü'nün sayfasına http://metu.edu.tr/ adresinden ulaşılabilir."; echo preg_replace("/http:\/\/(.*)\//", " \${0} ", $metin);

19 19 PHP’deki tanımlı ifade fonksiyonları $taslak = "In 2007 the company faced plummeting revenues and scandal."; $eskikelimeler = array("/faced/", "/plummeting/", "/scandal/"); $yenikelimeler = array("celebrated", "skyrocketing", "expansion"); echo preg_replace($eskikelimeler, $yenikelimeler, $taslak);

20 20 PHP’deki tanımlı ifade fonksiyonları function kisaltma($eslenen) { $kisaltmalar = array( 'WWW' => 'World Wide Web', 'IRS' => 'Internal Revenue Service', 'PDF' => 'Portable Document Format'); if (isset($kisaltmalar[$eslenen[1]])) return $eslenen[1]. " (". $kisaltmalar[$eslenen[1]]. ")"; else return $eslenen[1]; } // hedef metin $metin = "The IRS offers tax forms in PDF format on the WWW."; // hedef metin'e kisaltmalarin değerini yazdir $yenimetin = preg_replace_callback("/ (.*) /U", 'kisaltma', $metin); print_r($yenimetin);

21 21 PHP’deki tanımlı ifade fonksiyonları $duzensizMetin = "Servet+++++++Souza+++++++Beşliktaş++++++ +++++Hakkari"; $alanlar = preg_split("/\+{1,}/", $duzensizMetin); foreach($alanlar as $alan) echo $alan." "; $pswd = "gizlipswd"; if (strlen($pswd) < 10) echo "Şifreniz çok kısa!"; else echo "Şifreniz geçerli!";

22 22 Metinleri karşılaştırmak $pswd = "süpergizlş"; $pswd2 = "süpergizli"; if (strcmp($pswd,$pswd2) != 0) echo "Girilen şifreler eşleşmiyor!"; else echo "Girilen şifreşer eşleşiyor!"; 0 eğer $pswd1 ve $pswd2 eşitse -1 eğer $pswd1 $pswd2’den küçükse 1 eğer $pswd2 $pswd1’den küçükse $sifre = "3312345"; if (strspn($sifre, "1234567890") == strlen($sifre)) echo "\$Sifre sadece numaralardan oluşamaz!"; //ilk metinde olup ve ikinci metinde de olan karakterlerin sayısını veriyor

23 23 Metinleri karşılaştırmak $sifre = "a12345"; if (strcspn($sifre, "1234567890") == 0) echo "sifre sadece numaralardan oluşamaz!"; //ilk metinde olup ikinci metinde olmayan karakterlerin sayısını veriyor.

24 24 Metinlerle Uğraşmak Hepsini küçük karakterlere dönüştürme $url = "http://WWW.EXAMPLE.COM/"; echo strtolower($url); //http://www.example.com/ Hepsini büyük karakterlere dönüştürme $cumle = "Hocam uğraş uğraş olmuyor bu PHP!"; echo strtoupper($cumle); Sadece ilk harfi büyük yapıyor $cumle = "Hocam uğraş uğraş olmuyor bu PHP!"; echo ucfirst($cumle); Bütün harflerin ilk büyük yapıyor $cumle = "Hocam uğraş uğraş olmuyo bu PHP!"; echo ucwords($cumle)

25 25 Metinlerle Uğraşmak $recete = "3 çay kaşığı rezene 2 çay kaşığı ıhlamur 1 tutam dereotu 1 litre su"; // yeni satırları 'e dönüştürüyor echo nl2br($recete); Özel Karakterler & dönüşür & " dönüşür " ' dönüşür ' < dönüşür < > dönüşür > $cumle = "PHP için yeterince > değilim!"; echo htmlspecialchars($cumle); //kaynağı gör diyince PHP için yeterince <<iyi>> değilim!

26 26 Metinlerle Uğraşmak Kişisel dönüşüm $tablo = array(" " => " ", " " => " "); $html = " Bu günlük PHP haberi "; echo strtr($html, $tablo); // kaynağı görüntüle dersek Bu günlük PHP haberi Tagları temizlemek $deger = "Bu örnek mükemmel !"; echo strip_tags($deger, " "); //kaynağı görüntüle dersek tag’ı hariç diğer tagları temizler

27 27 Metinlerle Uğraşmak $bilgi = "Servet Souza:seso@besliktas.com|Silvan, Turkiye"; // ayraçlar (:), (|) ve (,) $ayraclar = ":|,"; $ayrilmis = strtok($bilgi, $ayraclar); // $ayrilmis dizisindeki herşeyi yazdir while ($ayrilmis) { echo "Parçalar = $ayrilmis "; // ilk parametreyi çağırma. $ayrilmis = strtok($ayraclar); } $ozet = "bu sunumu hazırlarken PHP'de birçok kitaba ve kaynağa baktım. Bu kaynakların her birinde değişik stratejiler ele alınmış. Size uygun stratejiler olup olmadığını veya size uygun stratejilerin ne olduğuna karar vermek bazen zaman alabiliyor. En çok destek aldığım kaynak PHP 5's nesne tabanlı programlama."; echo strip_tags($ozet)." "; $kelimeler = sizeof(explode(' ',strip_tags($ozet))); echo "\$ozet toplam kelime sayısı: $kelimeler";

28 28 Metinlerle Uğraşmak Dizileri metin’e çevirmek $sehirler = array("Antalya", "Ankara", "Bolu", "İstanbul"); echo implode(" | ", $sehirler); //Antalya | Ankara | Bolu | İstanbul İlk uygulamayı bulmak (strpos) $aranilan = "index.html"; $log = " 192.168.1.11:/www/htdocs/index.html:[2006/02/10:20:36:50] 192.168.1.13:/www/htdocs/about.html:[2006/02/11:04:15:23] 192.168.1.15:/www/htdocs/index.html:[2006/02/15:17:25] "; // aranilan dosyaya ilk ne zaman ulaşıldı echo $pozisyon = strpos($log, $aranilan); // o dosyanin son satırının bulunduğu yer echo " ".$pozisyon2 = strpos($log,"\n",$pozisyon); // aranılanın ne zaman erişildiğini öğrenmek echo " ".$pozisyon = $pozisyon + strlen($aranilan) + 1; // erişilme tarihini almak echo " ".$timestamp = substr($log,$pozisyon,$pozisyon2-$pozisyon); echo " "."$aranilan dosyanın ilk erişildiği zaman: $timestamp";

29 29 Metinlerle Uğraşmak Metinleri değiştirme $yazar = "servetsouza@besliktas.com"; $yazar = str_replace("@","(at)",$yazar); echo "Bu kodun yazarina ulasmak icin $yazar adresini kullanabilirsiniz."; $arac = "1944 Ford"; echo substr($arac, 5); //Ford $arac = "1944 Ford"; echo substr($arac, 0, 6); //1944 F $arac = "1944 Ford"; echo substr($arac, 1, -5); //944 echo " ".substr($arac, 2, -3); //44 F

30 30 Metinlerle Uğraşmak $aranankelimeler = array("Fransız", "yabancı", "eğitim", "dil", " "); $paragraf = "Türk eğitiminin 1845’te çizilen genel yapısı zaten Fransız örneğine göre şekillenmiştir. Daha sonraki kuruluşlarda, eğitim yasa ve yönetmeliklerinde, okulların ders programlarında Fransız etkisi alabildiğine devam etmiştir. Okullarda okutulan yabancı dil büyük bir çoğunlukla Fransızcadır, Bahriye Mektebi hariç askerî ve sivil okulların yabancı dil dersleri Fransızca öğretmeyi amaçlamıştır. Uzun yıllar Tıbbiye’de öğretim Fransızca yapıldığı gibi, dış politika ve ticaret hayatına elit yetiştiren Galatasaray Sultanisi’nin öğretim dili de Fransızcadır (Ergün,1990)."; foreach($aranankelimeler as $aranan) { echo "$aranan kelimesi paragrafta \"",substr_count($paragraf, $aranan)."\" defa geçmiştir. "; } $numara = "1234567899991111"; echo substr_replace($numara,"************",0,12); // ************1111 echo " ".substr_replace($numara,"************",0,5); //************67899991111 echo " ".substr_replace($numara,"************",0,-5); //************91111 echo " ".substr_replace($numara,"************",0,-10); //************7899991111

31 31 Metinlerle Uğraşmak $text = "\t\tBir kaç kelime bir şeyler :)... "; echo trim($text); //(\t), (\n), (\r), (\0), (\x0b) $veri = "Alien"; echo " ".str_pad($veri, 10); // produces "Alien " echo " ".str_pad($veri, 10, "-=", STR_PAD_LEFT); // produces "-=-=-Alien" echo " ".str_pad($veri, 10, "_", STR_PAD_BOTH); // produces "__Alien___" echo " ".str_pad($veri, 10, "_", STR_PAD_RIGHT);// produces "Alien_____" echo " ".str_pad($veri, 6, "___"); // produces "Alien_“ $cumle = "Besliktas sporlu Servet Souza Sivan Turkey"; // karakterler ve frekanslarını alir $liste = count_chars($cumle, 1); //0, 1, 2, 3, 4 kullanılabilir print_r($liste); foreach($liste as $harf=>$frekans) echo "Verilen cümlede \"".chr($harf)."\""." karakteri ". " $frekans defa kullanılmıştır ";

32 32 Metinlerle Uğraşmak $cumle = "Besliktas sporlu Servet Souza Sivan Turkey"; $liste = str_word_count($cumle); // sadece kelime sayısını verir $cumle = "Besliktas sporlu Servet Souza Silvan Turkey"; $liste = str_word_count($cumle, 1); // dizi olarak dondurur print_r($liste); foreach($liste as $harf=>$kelime) echo "Verilen cümlede $harf. kelime = $kelime "; $cumle = "Besliktas sporlu Servet Souza Silvan Turkey"; $liste = str_word_count($cumle, 2); //indeks no’su cumledeki kaçıncı karakterde başladığını gösterir print_r($liste); foreach($liste as $harf=>$kelime) echo "Verilen cümlede kelime = $kelime $harf. Karakterde başlar ";

33 33 Metinlerle Uğraşmak $cumle = "Besliktas sporlu Servet Souza Silvan Turkey, Servet Souza Besliktas sporlu olmak icin cok ugrasti"; $kelimeler = str_word_count($cumle,2); $tekrar = array_count_values($kelimeler); print_r($tekrar);


"1 PHP – Metinler ve Düzenli İ fadeler Internet Tabanlı Programlama Dr. Erman Yukselturk." indir ppt

Benzer bir sunumlar


Google Reklamları