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

Slides:



Advertisements
Benzer bir sunumlar
8. SINIF 3. ÜNİTE BİLGİ YARIŞMASI
Advertisements

HTML e GİRİŞ Temel HTML etiketleri.
Balık Pasaportu Hatice Kütük 2008
SQL String Fonksiyonları
PHP VE MYSQL.
STRİNG FONKSİYONLARI.
Tutarlı Bir Katalog için Otorite Kontrolü
NOKTA, DOĞRU, DOĞRU PARÇASI, IŞIN, DÜZLEMDEKİ DOĞRULAR
Eğitim Programı Kurulum Aşamaları E. Savaş Başcı ASO 1. ORGANİZE SANAYİ BÖLGESİ AVRUPA BİLGİSAYAR YERKİNLİĞİ SERTİFİKASI EĞİTİM PROJESİ (OBİYEP)
PHP-MySQL ile Profesyonel Web Programlama
Internet Tabanlı Programlama Dr. Erman Yukselturk
İNTERNET.
İNTERNET VE İLETİŞİM.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
PHP ve MySQL Web Yazılımı Gülin ÜTEBAY Bilgisayar Mühendisi
Diziler Dizi, bellekte aynı isim altında toplanmış değişkenler kümesidir. Eğer ki aynı türden veriler grubunu bellekte tutmak gerekirse diziler kullanılır.
Dizi (array) değişkenleri
Ankara Üniversitesi Açık Arşiv Uygulaması
Bölüm 9 Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Php 3. Sunum Fonksiyonlar Tarih ve Saat Fonksiyonları
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Fonksiyonlar Hafta 4.
ARALARINDA ASAL SAYILAR
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Diziler.
Gün Kitabın Adı ve Yazarı Okuduğu sayfa sayısı
PHP-Dosya ve Dizinler Internet Tabanlı Programlama Dr. Erman Yukselturk.
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Matematik 2 Örüntü Alıştırmaları.
PHP 4’ün Yenilikleri VIII. “Türkiye’de İnternet” Konferansı İstanbul, Aralık 2002 Hidayet Doğan.
İnternet Programcılığı II
6. HAFTA
İnternet Programcılığı II
Strateji Geliştirme Daire Başkanlığı
1 PHP – Metinler ve Düzenli İ fadeler Internet Tabanlı Programlama Dr. Erman Yukselturk.
HABTEKUS' HABTEKUS'08 3.
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1
İNTERNET ADRESLERİ Ahmet SOYARSLAN biltek.info.
Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü C ++ Nesne.
Chapter 6: Using Arrays.
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Diziler Dizi, bellekte aynı isim altında toplanmış değişkenler kümesidir. Eğer ki aynı türden veriler grubunu bellekte tutmak gerekirse diziler kullanılır.
Diferansiyel Denklemler
INTERNET TABANLI PROGRAMLAMA
WEB PROGRAMLAMA PHP Temelleri Dr. Erman Yükseltürk.
Bilgisayar Programlama
1 2 3 GÜVENLİK İÇİN ÖNCELİKLE RİSKİ YOK EDİLMELİDİR. RİSKİ YOK EDEMIYORSANIZ KORUNUN KKD; SİZİ KAZALARDAN KORUMAZ, SADECE KAZANIN ŞİDDETİNİ AZALTIR.
İnternet Programcılığı II
Algoritma & Programlama
Çocuklar,sayılar arasındaki İlişkiyi fark ettiniz mi?
İSMİN HALLERİ.
PHP.
MDK ALT YAPI KIYASLAMA ÇALIŞMA GRUBU
Temel Giriş/Çıkış Fonksiyonları
CEBİRSEL İFADELERİ ÇARPANLARINA AYIRMA
İNTERNET VE İLETİŞİM.
ÖĞR. GRV. Ş.ENGIN ŞAHİN BİLGİ VE İLETİŞİM TEKNOLOJİSİ.
PHP’ye Giriş Akademik Bilişim 2003 Adana, Şubat 2003 Hidayet Doğan.
İKMAP İnternet 1 Ders Notu
KIRKLARELİ ÜNİVERSİTESİ
SAYISAL ANALİZ Doç.Dr. Cüneyt BAYILMIŞ.
PHP ve HTML İnternet Programlama - 2. Koşullu İfadeler ve Döngüler Döngü ya da çevirim diyebileceğimiz, belli şart ve koşullarda istenilen değerleri yapabilmemizi.
7. HAFTA.
İNTERNET ADRESLERİ.
Bilgisayar Programlamasına ve Veri Analizine Giriş - IV
İNTERNET ADRESLERİ.
İNTERNET PROGRAMCILIĞI 2
MTM216 GÖRSEL PROGRAMLAMA
Sunum transkripti:

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

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

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 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 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 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 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 PHP’de tanımlı ifade fonksiyonları $url = " ereg("^( m:]]+)\.([[:alnum:]]+)", $url, $dizi); echo $dizi[0]." "; echo $dizi[1]." "; echo $dizi[2]." "; echo $dizi[3]." "; echo $dizi[4];

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 PHP’de tanımlı ifade fonksiyonları $string = "Tubitak linki echo ereg_replace(" ]+)$", " \\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 PHP’de tanımlı ifade fonksiyonları $tarih = " "; 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 Perl’de tanımlı ifade fonksiyonları /food/ /fo+/ (food, fool, fo4, foolish, …) /fo{2,4}/ (fool, foool, foolish, football, …)

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 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 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 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 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 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 adresinden ulaşılabilir."; echo preg_replace("/ " \${0} ", $metin);

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 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 // hedef metin'e kisaltmalarin değerini yazdir $yenimetin = preg_replace_callback("/ (.*) /U", 'kisaltma', $metin); print_r($yenimetin);

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 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 = " "; if (strspn($sifre, " ") == strlen($sifre)) echo "\$Sifre sadece numaralardan oluşamaz!"; //ilk metinde olup ve ikinci metinde de olan karakterlerin sayısını veriyor

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

24 Metinlerle Uğraşmak Hepsini küçük karakterlere dönüştürme $url = " echo strtolower($url); // 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 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 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 Metinlerle Uğraşmak $bilgi = "Servet 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 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 = " :/www/htdocs/index.html:[2006/02/10:20:36:50] :/www/htdocs/about.html:[2006/02/11:04:15:23] :/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 Metinlerle Uğraşmak Metinleri değiştirme $yazar = $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 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 = " "; echo substr_replace($numara,"************",0,12); // ************1111 echo " ".substr_replace($numara,"************",0,5); //************ echo " ".substr_replace($numara,"************",0,-5); //************91111 echo " ".substr_replace($numara,"************",0,-10); //************

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 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 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);