1 / 42

PHP 4’ün Yenilikleri

PHP 4’ün Yenilikleri. VIII. “Türkiye’de İnternet” Konferansı. İstanbul, 19-21 Aralık 2002. Hidayet Doğan <hdogan@hido.net>. PHP 4’ün Yenilikleri. empty(“0”) Metin İçine Değişken Yapıştırma print_r() Dizi Fonskiyonları Dosya ve Dizin Fonksiyonları Metin (String) Fonksiyonları.

tao
Download Presentation

PHP 4’ün Yenilikleri

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 4’ün Yenilikleri VIII. “Türkiye’de İnternet” Konferansı İstanbul, 19-21 Aralık 2002 Hidayet Doğan <hdogan@hido.net>

  2. PHP 4’ün Yenilikleri • empty(“0”) • Metin İçine Değişken Yapıştırma • print_r() • Dizi Fonskiyonları • Dosya ve Dizin Fonksiyonları • Metin (String) Fonksiyonları

  3. I. empty(“0”) Verilen parametredeki değerin boş olup olmadığını döndürür. Boş ise TRUE, değilse FALSE değeri döner. <? $veri = “0”; if (empty($veri)) echo “boş”; else echo “dolu”; ?> PHP 4 Çıktısı: boş PHP 3 Çıktısı: dolu

  4. II. Metin İçine Değişken Yapıştırma PHP 3: “metin metin” . $dizi[0][“isim”] . “metin metin” PHP 4: “metin metin {$dizi[0][“isim”]} metin metin” • Diziler (Tek veya çok boyutlu) • Sınıflar UYARI: PHP 3’e göre hazırlanmış betiklerin PHP 4 üzerinde düzgün bir biçimde çalışması için betik içindeki {$ içeren yerleri \{$ olarak düzeltin.

  5. III. print_r() (PHP 4 ile) Parametrede verilen değişkene ait bilgileri okunabilir bir şekilde gösterir. Eğer girilen değişken metin veya sayı gibi basit bir değişken ise değerin kendisi gösterilir. Dizi, sınıf gibi karmaşık bir değişken ise içinde barındırdıkları verilerle birlikte formatlanmış şekilde gösterir. Genelde betikler içinde, yazılan kodların doğruluğunun kontrol etmesi amacıyla kullanılır (DEBUG).

  6. III. print_r() (PHP 4 ile) <? $dizi = array(“bir” => “PHP”, “iki” => “HTML”); $metin = “Türkiye PHP Grubu”; $sayi = 15234; echo “<pre>”; print_r($dizi); print_r($metin); print_r($sayı); echo “</pre>”; ?>

  7. III. print_r() (PHP 4 ile) Çıktısı: Array ( [bir] => PHP [iki] => HTML ) Türkiye PHP Grubu 15234

  8. IV. Dizi Fonksiyonları • in_array() (PHP 4 ile) • array_search() (PHP 4.0.5 ile) • array_key_exists() / key_exists() (PHP 4.0.6 ile) • explode() 3. Parametresi (PHP 4.0.1 ile)

  9. IV-a. in_array() (PHP 4 ile) Eskiden... • for döngüsü • while döngüsü <? $dizi = array(“PHP”, “HTML”, “XML”); for ($i = 0; $i < count($dizi); $i++) { if (“PHP” == $dizi[$i])) echo “var”; else echo “yok”; } ?>

  10. IV-a. in_array() (PHP 4 ile) Birinci parametredeki değeri ikinci parametredeki dizi elemanları değerleri içinde arar. Eğer aranan değer bulunursa TRUE, bulunamaz ise FALSE değeri döner. <? $dizi = array(“PHP”, “HTML”, “XML”); if (in_array(“PHP”, $dizi)) echo “var”; else echo “yok”; ?> Çıktısı: var

  11. IV-a. in_array() (PHP 4 ile) Eğer üçüncü parametre değeri TRUE olarak verilirse, arama sadece birinci parametredeki değerin veri tipi ile eşit olan elemanlar arasında yapılır. <? $dizi = array(“metin”, 27, 12, 65); if (in_array(“27”, $dizi, TRUE)) echo “27 (metin) bulundu”; if (in_array(65, $dizi, TRUE)) echo “65 (sayı) bulundu”; ?> Çıktısı: 65 (sayı) bulundu

  12. IV-b. array_search() (PHP 4.0.5 ile) in_array() fonksiyonu ile neredeyse aynı olup, eğer verilen değer bulunursa TRUE değeri yerine, bulduğu değere ait anahtarı (eleman ismini) döndürür. <? $dizi = array(“bir” => “PHP”, “iki” => “HTML”); echo array_search(“PHP”, $dizi); ?> Çıktısı: bir

  13. IV-c. array_key_exists() (PHP 4.0.6 ile) Eskiden... <? $dizi = array(“bir” => “PHP”, “iki” => “HTML”); while (list($anahtar, $değer) = each($dizi)) { if (“bir” == $anahtar) echo “var”; else echo “yok”; } ?>

  14. IV-c. array_key_exists() (PHP 4.0.6 ile) Birinci parametredeki değeri ikinci parametredeki dizi anahtarları (eleman isimleri) içinde arar. Eğer aranan değer bulunursa TRUE, bulunamaz ise FALSE değeri döner. <? $dizi = array(“bir” => “PHP”, “iki” => “HTML”); if (array_key_exists(“bir”, $dizi)) echo “var”; else echo “yok”; ?> Çıktısı: var

  15. IV-c. array_key_exists() (PHP 4.0.6 ile) UYARI: Bu fonksiyonun ismi PHP 4.0.6 sürümünde key_exists() olarak geçmektedir.

  16. IV-d. explode() 3. Parametresi (PHP 4.0.1 ile) İkinci parametredeki metni birinci parametrede verilen ayraç ile parçalayıp dizi halinde döndürür. Eğer ayraç boş ise FALSE değeri döner. Eğer ayraç metin içinde bulunmazsa tüm metin tek elemanlı bir dizi olarak döner. Çıktısı: <? $metin = “bir iki üç dört beş”; $dizi = explode(“ “, $metin); echo $dizi[0].”<br>”; echo $dizi[1]; ?> bir iki

  17. IV-d. explode() 3. Parametresi (PHP 4.0.1 ile) Üçüncü parametre olan limit parametresine bir sayı verildiğinde, ikinci parametrede verilen metni sadece o sayı kadar parçalar. <? $metin = “bir iki üç dört beş”; $dizi = explode(“ “, $metin, 2); echo $dizi[0].”<br>”; echo $dizi[1].; ?> Çıktısı: bir İki üç dört beş

  18. IV. Dizi Fonksiyonları • Dizi fonksiyonlarının neredeyse yarısı PHP 4 ile gelmiştir. • Geriye kalan fonksiyonların ise yine yarısı üzerinde yenilikler • yapılmıştır. Yeni dizi fonksiyonlarından birkaç tanesi: • array_count_values() • array_merge() • array_rand() • array_slice() • array_unique()

  19. V. Dosya ve Dizin Fonksiyonları • getcwd() (PHP 4 ile) • disk_free_space() (PHP 4.1.0 ile) • disk_total_space() (PHP 4.1.0 ile) • move_uploaded_file() (PHP 4.0.3 ile) • parse_ini_file() (PHP 4 ile) • pathinfo() (PHP 4.0.3 ile) • realpath() (PHP 4 ile)

  20. V-a. getcwd() (PHP 4 ile) O an çalışılan dizinin tam yolunu metin olarak döner. <? echogetcwd(); ?> Çıktısı: /usr/local/httpd/htdocs C:\Program Files\Apache Group\Apache\htdocs

  21. V-b. disk_free_space() (PHP 4.1.0 ile) Parametrede verilen dizine ait bölümdeki boş alanı bayt cinsinden döner. Eğer yanış bir dizin verilirse boş döner. Çıktısı: <? echodisk_free_space(“.”); ?> 145323081 diskfreespace() fonksiyonu bu fonksiyonun kısa yoludur. UYARI: Windows işletim sistemi üzerinde her zaman boş dönmektedir.

  22. V-c. disk_total_space() (PHP 4.1.0 ile) Parametrede verilen dizine ait bölümdeki alanın büyüklüğünü bayt cinsinden döner. Eğer yanış bir dizin verilirse boş döner. Çıktısı: <? echodisk_total_space(“.”); ?> 4072980480 UYARI: Windows işletim sistemi üzerinde her zaman boş dönmektedir.

  23. V-d. move_uploaded_file() (PHP 4.0.3 ile) PHP ile sunucuya yüklediğiniz dosyaları başka bir dizine ve başka bir isimle taşımanızı sağlar. Birinci parametresine yüklenen dosya adı, ikinci parametresine ise taşınacak dizin ve yeni dosya adı verilir. <!-- yukle.html --> <form method=“post” action=“yukle.php” enctype=“multipart/form-data”> Dosya: <input type=“file” name=“dosya”> <input type=“submit” value=“Gönder”> </form>

  24. V-d. move_uploaded_file() (PHP 4.0.3 ile) <? # yukle.php echo “Önceki Dosya: $dosya<br>”; if (move_uploaded_file($dosya, getcwd().”/dosya.txt”)) echo “Yüklendi”; else echo “Hata!”; ?> Çıktısı: Önceki Dosya: /tmp/phpxujllN Yüklendi

  25. V-d. move_uploaded_file() (PHP 4.0.3 ile) Eğer $dosya değişkeninde verilen dosya PHP kullanarak yüklediğimiz bir dosya olmasaydı (sistem üzerindeki herhangi bir dosya olabilir) fonksiyon FALSE değerini dönerdi ve çıktı Yüklendi yerine Hata!olurdu. Dosyamız PHP ile yüklenmiş doğru bir dosya ve sistemde oluşan herhangi bir hata yüzünden taşınamıyor olsaydı yine FALSE değerini döner ve PHP ek olarak bir hata verirdi. UYARI: Taşınacak yerde aynı isimde bir dosya varsa yeni dosyayı üstüne yazar.

  26. V-e. parse_ini_file() (PHP 4 ile) Birinci parametrede verilen ayar (ini) dosyasını yorumlar ve dizi olarak döndürür. Eğer verilen dosya bulunamıyor veya açılamıyor ise betik hata verir ve çalışma sonlanır. İkinci parametrede ise dosya içindeki bölümleri yorumlayıp yorumlamıyacağı belirtilir. TRUE değeri verilirse bölümleri Yorumlayıp verileri çok boyutlu bir dizi olarak döner. FALSE verilirse – ikinci parametre verilmediğinde FALSE olarak atanmaktadır – veriler tek boyutlu bir dizi olarak döner.

  27. V-e. parse_ini_file() (PHP 4 ile) UYARI: Eğer veri içinde alfanumerik karakterler dışında bir karakter kullanılacaksa mutlaka çift tırnak (“) arasına alınmalıdır. ; Örnek ayar dosyası (ornek.ini) [ilk_bolum] bir = 1 bes = 5 [ikinci_bolum] yol = /usr/local/httpd/htdocs url = “http://localhost/~test”

  28. V-e. parse_ini_file() (PHP 4 ile) <? # yorumla.php echo “<pre>”; $dizi = parse_ini_file(“ornek.ini”); print_r($dizi); $dizi = parse_ini_file(“ornek.ini”, TRUE); print_r($dizi); echo “</pre>”; ?>

  29. V-e. parse_ini_file() (PHP 4 ile) 1. Çıktısı: Array ( [bir] => 1 [bes] => 5 [yol] = /usr/local/httpd/htdocs [url] = http://localhost/~test )

  30. V-e. parse_ini_file() (PHP 4 ile) 2. Çıktısı: Array ( [ilk_bolum] => Array ( [bir] => 1 [bes] => 5 ) [ikinci_bolum] => Array ( [yol] = /usr/local/httpd/htdocs [url] = http://localhost/~test ) )

  31. V-f. pathinfo() (PHP 4.0.3 ile) Parametrede verilen yola (path) ait dizin adı, dosya ismi ve dosya uzantısı bilgilerini dizi olarak döner. <? $bilgi = pathinfo(“/usr/local/httpd/htdocs/test.html”); echo$bilgi[“dirname”].”<br>”; echo $bilgi[“basename”].”<br>”; echo $bilgi[“extension”]; ?> UYARI:Verilen yolun doğruluğunu kontrol etmez.

  32. V-f. pathinfo() (PHP 4.0.3 ile) Çıktısı: /usr/local/httpd/htdocs test.html html

  33. V-g. realpath() (PHP 4 ile) Parametrede verilen dizin veya dosyanın ya da her ikisinin gerçek ve düzenlenmiş halini döner. Verilen dosya veya dizin açılamaz veya bulunamazsa FALSE değerini döndürür. <? echogetcwd().”<br>”; echorealpath(“../..//../test.html”); ?> Çıktısı: /usr/local/httpd/htdocs/bir/iki/uc /usr/local/httpd/htdocs/test.html

  34. V. Dosya ve Dizin Fonksiyonları Diğer yeni dosya fonksiyonları: • fscanf() • ftruncate()

  35. VI. Metin (String) Fonksiyonları • str_repeat() (PHP 4 ile) • str_pad() (PHP 4 ile) • substr_count() (PHP 4 ile)

  36. VI-a. str_repeat() (PHP 4 ile) Birinci parametredeki metni, ikinci parametrede verilen sayı kadar çoğaltır ve döner. Eğer ikinci parametrede 0 ise boş metin döner. 0’dan küçük ise hata oluşur ve çalışma sonlanır. Çıktısı: <? echostr_pad(“-=”, 10); ?> -=-=-=-=-=-=-=-=-=-=

  37. VI-b. str_pad() (PHP 4 ile) • Birinci parametredeki metnin soluna, sağına veya her iki • tarafına, istenilen boyuta ulaşana kadar üçüncü parametredeki • metni ekler. Eğer üçüncü parametre verilmez ise yerine boşluk • karakteri atanır. Dördüncü parametrede hangi yöne eklenmesi • gerektiği belirtilir. Bu parametreye: • STR_PAD_LEFT (sadece sola ekle) • STR_PAD_RIGHT (sadece sağa ekle) • STR_PAD_BOTH (her iki yöne ekle) • değerlerini verebiliriz. Eğer bu parametre verilmez ise yerine • STR_PAD_RIGHT değeri atanır.

  38. VI-b. str_pad() (PHP 4 ile) <? echo“\””.str_pad(“PHP”, 10).“\”<br>”; echo“\””.str_pad(“PHP”, 10, “-=”, STR_PAD_LEFT).“\”<br>”; echo“\””.str_pad(“PHP”, 10, “_”, STR_PAD_BOTH). “\”; ?> UYARI: İkinci parametre negatif bir sayı veya verilen metnin uzunluğundan küçük bir sayı ise hiçbir değişiklik olmadan birinci parametredeki metin döner.

  39. VI-b. str_pad() (PHP 4 ile) Çıktısı: "PHP " "-=-=-=-PHP" "___PHP____"

  40. VI-c. substr_count() (PHP 4 ile) Birinci parametredekimetnin içinde ikinci parametredeki metnin kaç defa kullanıldığını döner. Çıktısı: 2 <? echosubstr_count(“Bu bir örnek”, “r”); ?>

  41. VI. Metin (String) Fonksiyonları Yeni metin fonksiyonlarından birkaç tanesi: • sscanf() • wordwrap()

  42. Unutulmaması Gereken... • PHP 4.1.0 sürümü ile birlikte: • $HTTP_POST_VARS = $_POST • $HTTP_GET_VARS = $_GET • $HTTP_COOKIE_VARS = $_COOKIE • $HTTP_SESSION_VARS = $_SESSION • $HTTP_SERVER_VARS = $_SERVER • $HTTP_ENV_VARS = $_ENV • $HTTP_POST_FILES = $_FILES • PHP 4.2.0 kurulumunda register_globals = off

More Related