1 / 33

PHP – Metinler ve Düzenli İfadeler

PHP – Metinler ve Düzenli İfadeler. Internet Tabanlı Programlama Dr. Er man Yukselturk. function buldum($filename,$isim,$email,&$bulundu){ $ara=fopen($filename,"r"); while (!feof ($ara)) { $satir=fgets($ara ,4096); $dataarray=split(',',$satir);

harper
Télécharger la présentation

PHP – Metinler ve Düzenli İfadeler

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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. 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. Normal İfadeler / Köşeli Parantezler

  4. 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.pile başlayıp başka bir karakter ile devam eden ve sonra tekrar p içeren metinler Normal İfadeler / Miktarlar

  5. ^.{2}$2 karakter uzunluğunda olan metinler <b>(.*)</b> <b> ve </b> 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 Normal İfadeler / Miktarlar

  6. [: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]. Normal İfadeler / Önceden Belirlenmiş

  7. $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})$"; PHP’de tanımlı ifade fonksiyonları

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

  9. $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!"; PHP’de tanımlı ifade fonksiyonları

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

  11. $tarih = "30.04.1973"; list($gun, $ay, $yil) = split("\.", $tarih); echo "Gün: $gun <br> Ay: $ay<br> Yıl: $yil<br />\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 PHP’de tanımlı ifade fonksiyonları

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

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

  14. 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. Perl’de tanımlı ifade fonksiyonları

  15. 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. Perl’de tanımlı ifade fonksiyonları

  16. 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. Perl’de tanımlı ifade fonksiyonları

  17. $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!"; PHP’deki tanımlı ifade fonksiyonları

  18. $kullanici = "Isim: <b>Arda Şanlı</b> <br> Ünvan: <b>PHP Uzmanı</b>"; preg_match_all("/<b>(.*)<\/b>/U", $kullanici, $dizi); printf("%s <br /> %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:\/\/(.*)\//", "<a href=\"\${0}\">\${0}</a>", $metin); PHP’deki tanımlı ifade fonksiyonları

  19. $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); PHP’deki tanımlı ifade fonksiyonları

  20. 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 <kisaltma>IRS</kisaltma> offers tax forms in <kisaltma>PDF</kisaltma> format on the <kisaltma>WWW</kisaltma>."; // hedef metin'e kisaltmalarin değerini yazdir $yenimetin = preg_replace_callback("/<kisaltma>(.*)<\/kisaltma>/U", 'kisaltma', $metin); print_r($yenimetin); PHP’deki tanımlı ifade fonksiyonları

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

  22. $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 Metinleri karşılaştırmak

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

  24. 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) Metinlerle Uğraşmak

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

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

  27. $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<br>"; // 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 <a href=\"http://www.php.net\">PHP 5's</a> nesne tabanlı programlama."; echo strip_tags($ozet)."<br>"; $kelimeler = sizeof(explode(' ',strip_tags($ozet))); echo "\$ozet toplam kelime sayısı: $kelimeler"; Metinlerle Uğraşmak

  28. 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 "<br>".$pozisyon2 = strpos($log,"\n",$pozisyon); // aranılanın ne zaman erişildiğini öğrenmek echo "<br>".$pozisyon = $pozisyon + strlen($aranilan) + 1; // erişilme tarihini almak echo "<br>".$timestamp = substr($log,$pozisyon,$pozisyon2-$pozisyon); echo "<br>"."$aranilan dosyanın ilk erişildiği zaman: $timestamp"; Metinlerle Uğraşmak

  29. 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 "<br>".substr($arac, 2, -3); //44 F Metinlerle Uğraşmak

  30. $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.<br>"; } $numara = "1234567899991111"; echo substr_replace($numara,"************",0,12); // ************1111 echo "<br>".substr_replace($numara,"************",0,5); //************67899991111 echo "<br>".substr_replace($numara,"************",0,-5); //************91111 echo "<br>".substr_replace($numara,"************",0,-10); //************7899991111 Metinlerle Uğraşmak

  31. $text = "\t\tBir kaç kelime bir şeyler :) ... "; echo trim($text); //(\t), (\n), (\r), (\0), (\x0b) $veri = "Alien"; echo "<br>".str_pad($veri, 10); // produces "Alien " echo "<br>".str_pad($veri, 10, "-=", STR_PAD_LEFT); // produces "-=-=-Alien" echo "<br>".str_pad($veri, 10, "_", STR_PAD_BOTH); // produces "__Alien___" echo "<br>".str_pad($veri, 10, "_", STR_PAD_RIGHT);// produces "Alien_____" echo "<br>".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<br />"; Metinlerle Uğraşmak

  32. $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<br />"; $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<br />"; Metinlerle Uğraşmak

  33. $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); Metinlerle Uğraşmak

More Related