PHP: Hypertext Preprocessor (Türkçe: Üstünyazı Önişlemcisi) (Aslen: Personal Home Page - Kişisel Ana Sayfa), internet için üretilmiş, sunucu taraflı, çok geniş kullanımlı, genel amaçlı, içerisine HTML gömülebilen betik ve programlama dilidir. İlk kez 1995 yılında Rasmus Lerdorf tarafından yaratılan PHP'nin geliştirilmesi bugün PHP topluluğu tarafından sürdürülmektedir. Ocak 2013 itibarıyla 244 milyondan fazla web sitesi PHP ile çalışırken 2.1 milyon web sunucusunda PHP kurulumu bulunmaktadır.
Paradigması | çok paradigmalı: zorunlu, nesne yönelimli, yordamsal, |
---|---|
İlk çıkışı | 8 Haziran 1995 | )
Tasarımcı | Rasmus Lerdorf |
Geliştirici | PHP Grubu, Zend Technologies, PHP Foundation |
Kararlı sürüm | 8.3.2 (18 Ocak 2024 | ) )
, , | |
Zend Engine, , , , HipHop | |
Etkilendikleri | C, Perl, Java, , Tcl |
Etkiledikleri | , JSP, ASP |
Uygulama dili | C |
Platformu | çapraz platform |
Lisans | PHP Lisansı |
Olağan dosya uzantıları | .php,.phar,.phtml,.pht,.phps |
Web sitesi | www.php.net |
PHP kodları PHP işleme modülü bulunan bir web sunucusu tarafından yorumlanır ve çıktı olarak web sayfası üretilir. Bu kodlar veriyi işlemek üzere harici bir dosyaya kaydedilerek çağırılabildiği gibi doğrudan HTML kodunun içine de gömülebilir. PHP zaman içinde bir komut satırı arayüzü sunacak şekilde evrilmiştir, PHP-GTK yardımıyla grafiksel masaüstü uygulaması geliştirmek de mümkündür.
PHP özgür bir yazılım olup PHP Lisansı ile dağıtılmaktadır. Bu lisans kullanım şartları kısmında GNU Genel Kamu Lisansı ile örtüşmese de, PHP tüm web sunuculara ve hemen hemen tüm işletim sistemi ve platforma ücretsiz olarak yüklenebilir.
Tarihçe
PHP'nin geliştirilmesi 1994 yılında Rasmus Lerdorf'un kişisel web sitesini yönetmek için bir takım CGI (İngilizce: Common Gateway Interface) Perl betikleri yazmasıyla başladı. Rasmus bu betikler yardımıyla özgeçmişini sitede görüntülüyor ve sitenin ziyaretçi trafiğini kaydediyordu. Bir süre sonra web formları ile etkileşime girebilecek, veritabanları ile iletişim kurabilecek ve daha hızlı çalışabilecek şekilde bu betikleri C ile yeniden kodladı ve bu uygulamaya Kişisel Ana Sayfa/Form Yorumlayıcı (PHP/FI, İngilizce: Personal Home Page/Forms Interpreter) adını verdi. PHP/FI yardımıyla basit anlamda dinamik web siteleri oluşturmak oldukça kolaydı. Rasmus, 8 Haziran 1995 tarihinde hata ayıklama sürecini hızlandırmak ve kaynak kodu iyileştirmek üzere bir Usenet tartışma grubunda PHP/FI uygulamasını Personal Home Page Tools (PHP Tools) adıyla ilk kez duyurdu. 2013 yılı itibarıyla PHP içinde mevcut olan Perl benzeri değişken tanımlama, form yönetimi ve betik kodları arasına HTML kodu yerleştirebilme gibi temel özellikler bu ilk sürümde de mevcuttu. Sözdizimi genel olarak Perl'e benzese de daha kısıtlı ve basit ancak daha tutarsızdı. Bir geliştirme takımıyla aylar süren çalışma ve test aşamalarının ardından PHP/FI 2 sürümü 1997 Kasım ayında resmi olarak duyuruldu.
Zeev Suraski ve Andi Gutmans 1997 yılında baştan yazdılar ve dilin ismini PHP: Hypertext Preprocessor olarak değiştirerek PHP 3 ün temellerini attılar. Bunu PHP 3 ün herkese açık olan test sürecinin başlaması izledi ve 1998 yılının Haziran ayında PHP 3 resmi olarak duyuruldu. Suraski ve Gutmans bu sürecin ardından PHP'nin çekirdeğini sil baştan kodlamak suretiyle 1999 yılında Zend Motorunu geliştirdiler ve İsrail'in Ramat Gan kentinde Zend Technologies isimli bir şirket kurdular.
22 Mayıs 2000 tarihinde temelleri Zend Engine 1.0 ile güçlendirilmiş PHP 4 duyuruldu ve Ağustos 2008 itibarıyla 4.4.9 sürümüne ulaşana kadar aktif olarak geliştirildi. Bugün PHP 4'ün geliştirilmesi durdurulmuştur ve güvenlik güncellemeleri dahil olmak üzere üzerinde hiçbir iyileştirme yapılmamaktadır.
13 Temmuz 2004 tarihinde yeni Zend Engine II ile güçlendirilmiş PHP 5 yayınlandı. PHP 5, nesneye yönelik programlama için çok daha fazla olanak sağlıyor, PHP Veri Nesneleri (PDO) eklentisi yardımıyla veritabanlarına erişim için oldukça tutarlı ve hızlı bir arayüz yanında performansa yönelik çok sayıda iyileştirme barındırıyordu. 2008 yılında PHP 4 ün tutarlı sürümünün yayınlanması durduruldu ve PHP 5 geliştirilmesi devam eden tek tutarlı sürüm oldu. PHP (İngilizce: Late static binding) özelliği barındırmıyordu ancak 5.3 sürümü ile bu önemli eksik giderildi.
Sürüm geçmişi
Anlamı | |
---|---|
Kırmızı | Artık desteklenmeyen sürüm |
Sarı | Yalnızca güvenlik düzeltmeleri alan sürüm |
Yeşil | Aktif olarak desteklenen sürüm |
Mavi | Gelecek sürüm ya da BETA, sürüm |
Ana Sürüm | Ek Sürüm | Yayın Tarihi | Notlar |
---|---|---|---|
1 | 1.0.0 | 1995-06-08 | "Personal Home Page Tools (Kişisel Anasayfa Araçları)" olarak anılıyordu ve kısaltımı "PHP" idi. |
2 | 2.0.0 | 1997-11-01 | Yaratıcısı ve "en hızlı ve en sade araç" olarak, web sayfaları için geliştirdi. |
3 | 3.0.0 | 1998-06-06 | Sürüm kişisellikten, kurumsallığa geçti. Zeev Suraski ve Andi Gutmans tekrar basit dil bilgisini yazdı. |
4 | 4.0.0 | 2000-05-22 | Daha ileri seviye dil bilgisi eklendi / Zend Motoru denilen dil bilgisi denetleyicisi getirildi. |
4.1.0 | 2001-12-10 | 'Süper globaller' tanıştırıldı. ($_GET , $_POST , $_SESSION , $_SERVER vb...) | |
4.2.0 | 2002-04-22 | register_globals öntanımlı olarak engellendi. | |
4.3.0 | 2002-12-27 | tanıştırıldı, CGI ekleri yapıldı. | |
4.4.0 | 2005-07-11 | phpize ve php-config betikleri için eklenmeler yapıldı. | |
4.4.8 | 2008-01-03 | Çoğu güvenlik sorunları ve hatalar düzeltildi. Son kalıcı PHP 4 sürümü oldu. Gerekli ise, güvenlik güncellemeleri 2008-08-08 e kadar sürdü. | |
4.4.9 | 2008-08-07 | Daha fazla açık onarıldı. PHP 4 serileri için son sürüm oldu. | |
5 | 5.0.0 | 2004-07-13 | Zend Motoru II ile yeni obje modelleri geliştirildi. |
5.1.0 | 2005-11-24 | Eklenen değişkenler ile performans artışı gözlemlendi. | |
5.2.0 | 2006-11-02 | Filtreleme öntenımlı olarak iptal edildi. | |
5.2.11 | 2009-09-16 | Hata ve güvenlik sorunları çözüldü. | |
5.2.12 | 2009-02-25 | Güvenlik ve veri tabanı iletişimi güçlendirildi. 60 adet hata düzeltildi. | |
5.2.13 | 2010-07-22 | Hatalar düzeltildi. | |
5.2.14 | 2010-12-17 | Hatalar düzeltildi. PHP 5.2.x sürümleri geliştirilmesi durduruldu. | |
5.3.0 | 2009-06-30 | desteği, Atlama kodları (goto ile limitlendi), Yerli PHP arşivlemesi (phar), Windows desteği arttırıldı, sqlite3 geliştirildi, fileinfo, mime_magic yerine daha iyi bir MIME desteği için getirildi, uluslararası olarak "ereg" kod yapısı iptal edildi. | |
5.3.1 | 2009-11-19 | 100'den fazla hata düzeltildi, bazı küçük sorunlar da düzeltildi. | |
5.3.2 | 2010-03-04 | Çok geniş bir hata düzeltimi yapıldı. | |
5.3.3 | 2010-07-22 | Başlıca hata ve güvenlik sorunları onarıldı. FPM[] | |
5.4 | 2012-03-01 | Trait desteği geldi, diziler için kısa sözdizimi desteği geldi. Register_globals, safe_mode, allow_call_time_pass_reference konfigürasyon değerleri session_register(), session_unregister() ve session_is_registered() metotları ile birlikte kaldırıldı. Dahili web sunucu desteği eklendi. Bellek kullanımı düşürüldü, mevcut fonksiyonelite üzerinde performansı artıran çok sayıda iyileştirme yapıldı. | |
5.5 | 2013-06-20 | Yeni makine kodu önbellekleme eklentisi (Zend Optimizer+) geldi. GD resim işleme kütüphanesine yeni fonksiyonlar eklendi. Parola şifreleme işlemlerini kolaylaştırmak ve daha üst seviyede güvenlik sunmak üzere password_hash() ve password_verify() metotları geldi. try {} catch() {} sözdizimine diğer üst seviye dillerde bulunan finally bloğu eklendi. | |
5.6 | 2014-08-28 | Belirsiz sayıda parametre alan fonksiyonlar (variadic functions), sabitlere (const) numerik işlemlerle (+, -, * ...) tanım yapabilme, üs alma operatörü (**) eklendi. | |
7 | 7.0 | 2015-12-03 | Zend Engine 3.0 ile önceki sürümlere göre performansı önemli derecede arttırıldı.(?? Operatörü), <=> üç yollu karşılaştırma operatörü ve anonymous sınıflar eklendi. Unicode desteği geldi. |
7.1 | 2016-12-01 | Void tipi eklendi, sınıf sabitlerini (const) kapsülleme, boşaltılabilir (nullable) tip, birden fazla hata (exception handling) yakalayabilme. | |
7.2 | 2017-11-30 | Object tipi eklendi, abstract metodlar artık override edilebiliyor. | |
7.3 | 2018-12-06 | is_countable fonsiyonu, Esnek Heredoc ve Nowdoc Sözdizimleri | |
7.4 | 2019-11-28 | Ok fonksiyon, ön yükleme, sınıflarda tip özelliği, geliştirilmiş tip varyansları, dizilerde dağıtma operatoru, null işaretleme operatörü | |
8 | 8.0 | 2020-12-3 | İsimli parametreler, union türleri, nitelikler, constructor nitelik promosyonu, nullsafe operatörü, match ifadesi, JIT(Just in Time), static türünde değer döndürme, mixed türü, throw ifadesi, nesnelerde ::class sözdizimi, try-catch sözdiziminin hata değişkeni belirtmeden kullanımı, parametre listelerinin sonunda virgül kullanımı, string değişkenlerde otomatik Stringable arayüze geçiş, str_contains() fonksiyonu, str_starts_with() ve str_ends_with() fonksiyonları, string birleştirme önceliği. |
8.0.1 | 2021-01-07 | Bazı hatalar giderildi. | |
8.0.2 | 2021-02-04 | Bazı hatalar giderildi. | |
8.1.0 | 2021-11-25 | Sayılama (İngilizce: enum) desteği eklendi. | |
8.2.0 | 2022-12-08 | Sadece okunabilir sınıflar (İngilizce: Readonly classes) eklendi. | |
8.3.2 | 2024-01-18 | Sınıf sabitlerinin açıkça yazılması, salt okunur özelliklerin derinlemesine klonlanması ve rastgelelik işlevine yapılan eklemeler gibi birçok yeni özellik içerir. Her zaman olduğu gibi performans iyileştirmeleri, hata düzeltmeleri ve genel temizlik de içeriyor. |
Ek bilgiler
PHP, özellikle MySQL veritabanıyla birlikte ve Linux işletim sistemi altında iyi bir performans sergilemektedir. C/ diline olan benzerliği nedeniyle bu dili önceden bilenlerin PHP öğrenmesi oldukça kolaydır. Kolay öğrenilmesi ve hızlı performansı nedeniyle Facebook, YouTube, Yahoo, Wikipedia ve OGame gibi dünyaca ünlü sitelerin yazımında kullanılmasına rağmen, kodların kolay anlaşılabilmesi açısından ve birden fazla programcı tarafından sürekli geliştirilmesi gerekli büyük projelerde Java'nın kullanılması daha uygun görülmektedir. Ancak sadece web tabanlı yazılımın geliştirilmesi söz konusu olduğunda Java'ya göre öğrenilmesinin daha kolay olması nedeniyle genellikle PHP tercih edilmektedir. PHP, web tasarımında önemli kolaylıklar sağlasa da 2005 te Google in AJAX kullanmaya başlamasından sonra tek başına öğrenilmesi yeterli olmamakta ve AJAX'ı öğrenmek için gerekli JavaScript, XML, HTML, (ve CSS) ile birlikte bir bütün oluşturabilmektedir.
Geliştiriciler
Önemli PHP Geliştiricileri | |||||
---|---|---|---|---|---|
Rasmus Lerdorf | Andi Gutmans | Zeev Suraski | |||
Danimarka asıllı Kanadalı, programcı. PHP'nin mucidi ve . 2002'den beri Yahoo Şirketi için çalışmakta. Aynı zamanda Apache HTTP Sunucusu projesinin başlamasını sağladı. Joomla! gibi GNU PHP projelerin güvenliğini kontrol ediyor. | İsrail asıllı programcı. PHP'nin gelişmesinde çok emeği olmuştur. Aynı zamanda hakkındaki çok önemlidir. | İsrail asıllı programcı. icat etti. PHP için bir betik motoru ve derleyici oluşturdu. |
Program dizimi
Aşağıdaki örnek programda HTML içerisine gömülü PHP kodunu görebilirsiniz.
<!DOCTYPE html> <html> <head> <title>PHP Testi</title> </head> <body> <?php echo '<p>Merhaba Dünya</p>'; ?> </body> </html>
Unutmayın ki PHP kodunun HTML içerisinde gömülü olması zorunlu değildir. Benzeri bir program aşağıdaki gibi yazılabilir.
<?='Hello world' ?>
Fonksiyonlar
PHP yazılımı büyük bir fonksiyon kütüphanesi ile birlikte gelir. Gömülü fonksiyonların haricinde kendi fonksiyonunuzu aşağıdaki gibi tanımlayabilirsiniz.
<?php function yasimiGetir($dogumYili) { $yas = date('Y') - $dogumYili; return $yas; } echo yasimiGetir(1981) . ' yaşındayım.'; ?>
<?php function topla($a, $b){ return $a + $b; } echo topla(5, 10); //15 ?>
Kullanım
PHP, özellikle sunucu taraflı web geliştirmeye uygun genel amaçlı bir kodlama dilidir; bu durumda PHP genellikle bir web sunucusunda çalışır. İstenen dosyadaki herhangi bir PHP kodu, genellikle dinamik web sayfası içeriği veya web sitelerinde veya başka yerlerde kullanılan dinamik görüntüler oluşturmak için PHP çalışma zamanı tarafından yürütülür. Ayrıca komut satırı komut dosyaları oluşturma ve istemci tarafı grafik kullanıcı arabirimi (GUI) uygulamaları için de kullanılabilir. PHP çoğu web sunucusuna, birçok işletim sistemine ve platforma dağıtılabilir ve birçok ilişkisel veritabanı yönetim sistemi (RDBMS) ile kullanılabilir. Çoğu web barındırma sağlayıcısı müşterileri tarafından kullanılmak üzere PHP'yi destekler. Ücretsiz olarak mevcuttur ve PHP Grubu, kullanıcıların kendi kullanımları için oluşturmaları, özelleştirmeleri ve genişletmeleri için eksiksiz kaynak kodu sağlar.
Başlangıçta dinamik web sayfaları oluşturmak için tasarlanan PHP, artık esas olarak sunucu tarafı komut dosyası yazmaya odaklanmaktadır ve Python, Microsoft'un ASP.NET, Sun Microsystems'in JavaServer Pages, ve mod_perl
gibi web sunucusundan istemciye dinamik içerik sağlayan diğer sunucu tarafı komut dosyası dillerine benzer.
PHP ayrıca hızlı uygulama geliştirmeyi (RAD) teşvik etmek için yapı taşları ve tasarım yapısı sağlayan birçok yazılım çerçevesinin geliştirilmesini de kendine çekmiştir. Bunlardan bazıları PRADO, CakePHP, Symfony, CodeIgniter, Laravel, Yii Framework, Phalcon ve Laminas'tır ve diğer web çerçevelerine benzer özellikler sunar.
LAMP mimarisi, web uygulamalarını dağıtma yolu olarak web endüstrisinde popüler oldu. PHP, bu pakette Linux, Apache ve MySQL ile birlikte P olarak çok kullanılır ancak P aynı zamanda Python, Perl veya üçünün bir karışımını da ifade edebilir. Benzer paketler, WAMP ve MAMP, Windows ve macOS için de vardır ve ilk harf ilgili işletim sistemini temsil eder. Hem PHP hem de Apache, macOS temel kurulumunun bir parçası olarak sağlansa da, bu paketlerin kullanıcıları, daha kolay güncel tutulabilecek daha basit bir kurulum mekanizması aramaktadır.
Belirli ve daha gelişmiş kullanım senaryoları için PHP, C veya dilinde özel uzantılar yazmak için iyi tanımlanmış ve belgelenmiş bir yol sunar. Uzantılar, dilin kendisini ek kitaplıklar biçiminde genişletmenin yanı sıra, kritik olduğu durumlarda yürütme hızını artırma yolunu sağlar ve gerçek bir derlenmiş dil kullanarak iyileştirmelere yer vardır. PHP ayrıca kendisini diğer yazılım projelerine dahil etmek için iyi tanımlanmış yollar sunar. Bu şekilde PHP, başka bir proje için dahili bir kodlama dili olarak kolayca kullanılabilir ve aynı zamanda projenin belirli dahili veri yapılarıyla sıkı bir arayüz sağlar. PHP, çekirdek dil düzeyinde çoklu iş parçacığı desteğinin bulunmaması nedeniyle karışık eleştiriler aldı, ancak iş parçacıklarını kullanmak "pthreads" PECL uzantısı tarafından mümkün kılındı.
PHP için bir komut satırı arayüzü, php-cli ve iki ActiveX Windows Komut Dosyası Ana Bilgisayarı komut dosyası oluşturma motoru üretildi.
Popülerlik ve kullanım istatistikleri
PHP, MediaWiki,WordPress,Joomla!,Drupal,Moodle, eZ Publish, eZ Platform ve SilverStripe dahil olmak üzere Web içerik yönetim sistemlerinde kullanılır.
Ocak 2013 itibarıyla PHP 240 milyondan fazla web sitesinde kullanılmış (örneklenenlerin %39'u) ve 2,1 milyon web sunucusuna kurulmuştur.
28 Ocak 2024 tarihi itibarıyla (PHP 8.3'ün yayınlanmasından 2 ay sonra), dilin belirlenebildiği web sitelerinin %76,5'inde sunucu tarafı programlama dili olarak PHP kullanılmaktadır; PHP 7, dilin en çok kullanılan sürümüdür; PHP kullanan web sitelerinin %58,8'i bu sürümü kullanırken, %23,9'u PHP 8 ve %17,1'i PHP 5 kullanmaktadır.
Güvenlik
2019'da Ulusal Güvenlik Açığı Veritabanı tarafından listelenen tüm güvenlik açıklarının %11'i PHP ile bağlantılıydı. Tarihsel olarak, 1996'dan bu yana bu veri tabanında listelenen tüm güvenlik açıklarının yaklaşık %30'u PHP ile bağlantılıdır. Dilin kendisinin veya çekirdek kitaplıklarının teknik güvenlik kusurları sık görülen bir durum değildir (2009'da 22, toplamın yaklaşık %1'i, ancak PHP listelenen programların yaklaşık %20'si için geçerlidir). Programcıların hata yaptığını kabul eden bazı diller, birçok soruna neden olan girdi doğrulama eksikliğini otomatik olarak tespit etmek için hata kontrolü içerir. Böyle bir özellik PHP için geliştirilmektedir, ancak bunun bir sürüme dahil edilmesi geçmişte birkaç kez reddedilmiştir.
Web barındırma ortamları için özel olarak tasarlanmış Suhosin ve Hardening-Patch gibi gelişmiş koruma yamaları bulunmaktadır.
Geçmişte, PHP'nin eski sürümlerinde bazı yapılandırma parametreleri ve bu tür çalışma zamanı ayarları için varsayılan değerler vardı, bu da bazı PHP uygulamalarını güvenlik sorunlarına açık hale getiriyordu. Bunlar arasında magic_quotes_gpc
ve register_globals
yapılandırma direktifleri en iyi bilinenleriydi; ikincisi, herhangi bir URL parametresinin PHP değişkenleri haline gelmesini sağladı ve bir saldırganın herhangi bir başlatılmamış global değişkenin değerini ayarlamasına ve bir PHP betiğinin yürütülmesine müdahale etmesine izin vererek ciddi güvenlik açıklarına yol açtı. "magic quotes" ve "register globals" ayarları desteği PHP 5.3.0'dan beri kullanımdan kaldırılmış ve PHP 5.4.0'dan silinmiştir.
Çalışma zamanı ayarları olası güvenlik açığına başka bir örnek, yüklenen dosyaların depolandığı dizin için PHP yürütmesinin devre dışı bırakılmamasından (örneğin engine
yapılandırma direktifi kullanılarak) kaynaklanır. Bunun etkinleştirilmesi, yüklenen dosyalara yerleştirilmiş kötü amaçlı kodun yürütülmesine neden olabilir. En iyi uygulama, görüntü dizinini web sunucusunun kullanabileceği belge kökünün dışına yerleştirmek ve onu bir aracı komut dosyası aracılığıyla sunmak veya yüklenen dosyaları saklayan dizin için PHP yürütmesini devre dışı bırakmaktır.
Ayrıca, paylaşılan bir web barındırma ortamında PHP uzantılarının dinamik yüklenmesini etkinleştirmek (enable_dl
yapılandırma yönergesi aracılığıyla) güvenlik sorunlarına yol açabilir.
Bazen programcının amacına aykırı olarak farklı değerlerin eşit olarak değerlendirilmesine neden olan ima edilen tip dönüşümleri güvenlik sorunlarına yol açabilir. Örneğin, '0e1234' == '0'
karşılaştırmasının sonucu true
'dur çünkü sayı olarak ayrıştırılabilen dizeler sayılara dönüştürülür. Bu durumda, ilk karşılaştırılan değer sıfır olan (0×101234) değerli bilimsel gösterim olarak kabul edilir. Bunun gibi hatalar MD5 şifre karmaları karşılaştırıldığında Simple Machines Forum,TYPO3 ve phpBB'de kimlik doğrulama açıklarına neden oldu. Önerilen yol, hash_equals() (zamanlama saldırısı güvenliği için), strcmp
veya kimlik operatörünü (===
) kullanmaktır çünkü '0e1234' === '0'
false
ile sonuçlanır.
Zone-H tarafından yayınlanan 170.000'den fazla web sitesi tahrifatını kapsayan 2013 analizinde en sık kullanılan teknik (%53), çoğunlukla PHP dil yapılarının include
, require
ve allow_url_fopen
'ın güvensiz kullanımıyla ilgili olan dosya ekleme güvenlik açığından yararlanılmasıydı.
23 Aralık 2023 itibarıyla (PHP 8.3 sürümünden 1 ay sonra) W3Techs, PHP kullanan web sitelerinin %85,9'unun 8.0 veya daha eski sürümleri kullandığını (bunlar artık PHP Geliştirme Ekibi tarafından desteklenmemektedir) bildirmektedir.
23 Aralık 2023 itibarıyla Sürüm 5 hâlâ tüm web sitelerinin %13,6'sı tarafından kullanılmaktadır. PHP 8.1 veya sonraki sürümlere geçiş yapılması ve rand()
veya mt_rand()
,, yerine random_int()
kullanılması önemle tavsiye edilmektedir çünkü bu işlevler kriptografik açıdan güvensizdir. PHP entropi kaynakları üzerinden gerçekleştirilebilecek iki saldırı vardır: "tohum saldırısı" ve "durum kurtarma saldırısı". Mevcut GPU teknolojileriyle bir saldırgan, 250 ABD doları tutarındaki GPU ile saniyede 230'a kadar MD5 hesaplaması gerçekleştirebilirken, ek 500 ABD doları tutarındaki GPU ile 232'ye kadar hesaplamaya ulaşabilir.
"Doğum günü akını" ile birlikte bu durum ciddi güvenlik açıklarına yol açabilir.
Ayrıca bakınız
Kaynakça
- ^ a b . 9 Mart 2011 tarihinde kaynağından arşivlendi. Erişim tarihi: 25 Eylül 2010.
- ^ "PHP Kullanım İstatistikleri, Ocak 2013 (İngilizce)". 31 Mayıs 2016 tarihinde kaynağından . Erişim tarihi: 6 Eylül 2013.
- ^ "PHP Neler Yapabilir? (İngilizce)". 2 Haziran 2016 tarihinde kaynağından . Erişim tarihi: 6 Eylül 2013.
- ^ "GPL-Incompatible Free Software Licenses (İngilizce)". 28 Mayıs 2016 tarihinde kaynağından . Erişim tarihi: 6 Eylül 2013.
- ^ . 4 Mart 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Eylül 2013.
- ^ . 24 Mart 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Eylül 2013.
- ^ "Why PHP 5 Rocks (İngilizce)". 31 Mart 2016 tarihinde kaynağından . Erişim tarihi: 6 Eylül 2013.
- ^ . 4 Aralık 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Eylül 2013.
- ^ . 14 Nisan 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Mart 2016.
- ^ "PHP 7.1 New features". php.net. 14 Nisan 2017 tarihinde kaynağından . Erişim tarihi: 4 Mayıs 2017.
- ^ "PHP 7.2 New features". php.net. 9 Ağustos 2018 tarihinde kaynağından . Erişim tarihi: 10 Ağustos 2018.
- ^ "PHP 7.3 New features". php.net. 12 Ocak 2020 tarihinde kaynağından . Erişim tarihi: 14 Ocak 2020.
- ^ "PHP 7.4 New features". php.net. 12 Ocak 2020 tarihinde kaynağından . Erişim tarihi: 14 Ocak 2020.
- ^ . 18 Mayıs 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 17 Mayıs 2020.
- ^ . 19 Mayıs 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 17 Mayıs 2020.
- ^ . www.php.net. 25 Kasım 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 20 Şubat 2021.
- ^ . www.php.net. 25 Kasım 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 20 Şubat 2021.
- ^ . www.php.net. 25 Kasım 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Haziran 2023.
- ^ . www.php.net (İngilizce). 25 Kasım 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Haziran 2023.
- ^ . www.php.net. 25 Kasım 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Haziran 2023.
- ^ . www.php.net (İngilizce). 8 Aralık 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Haziran 2023.
- ^ "PHP: PHP 8.3.0 Release Announcement". 7 Şubat 2024 tarihinde kaynağından . Erişim tarihi: 28 Ocak 2024.
- ^ "PHP Manual Image Processing and GD;". php.net. 10 Nisan 2011 tarihinde kaynağından . Erişim tarihi: 9 Nisan 2011.
- ^ . O'Reilly. 3 Mayıs 2001. 19 Şubat 2008 tarihinde kaynağından arşivlendi. Erişim tarihi: 25 Şubat 2008.
- ^ . Indiana University. 4 Nisan 2007. 21 Ocak 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 25 Şubat 2008.
- ^ "JavaServer Pages Technology — JavaServer Pages Comparing Methods for Server-Side Dynamic Content White Paper". Sun Microsystems. 2 Şubat 2008 tarihinde kaynağından . Erişim tarihi: 25 Şubat 2008.
- ^ "Five simple ways to tune your LAMP application". IBM. 25 Ocak 2011. 28 Şubat 2021 tarihinde kaynağından . Erişim tarihi: 7 Şubat 2024.
- ^ . PHP.net. 26 Eylül 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 22 Eylül 2013.
- ^ "PHP at the core: The "counter" Extension – A Continuing Example". PHP.net. 26 Eylül 2013 tarihinde kaynağından . Erişim tarihi: 22 Eylül 2013.
- ^ . Zend Technologies. 1 Mart 2005. 24 Eylül 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 22 Eylül 2013.
- ^ . Zend Technologies. 6 Haziran 2005. 26 Eylül 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 22 Eylül 2013.
- ^ . Zend Technologies. 6 Haziran 2005. 26 Eylül 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 22 Eylül 2013.
- ^ . Zend Technologies. 12 Mayıs 2006. 26 Eylül 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 22 Eylül 2013.
- ^ . Zend Technologies. 22 Nisan 2009. 20 Eylül 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 22 Eylül 2013.
- ^ . Stack Overflow. 27 Eylül 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 22 Eylül 2013.
- ^ "How can I use C++ code to interact with PHP?". Stack Overflow. Erişim tarihi: 22 Eylül 2013.
- ^ Golemon, Sara (2006). Extending and Embedding PHP. Sams. ISBN .
- ^ "Request #46919: Multithreading". PHP.net. 27 Eylül 2013 tarihinde kaynağından . Erişim tarihi: 22 Eylül 2013.
- ^ "pthreads: Introduction (PHP Manual)". PHP.net. 27 Eylül 2013 tarihinde kaynağından . Erişim tarihi: 22 Eylül 2013.
- ^ "PECL :: Package :: pthreads". pecl.php.net. 26 Mart 2014 tarihinde kaynağından . Erişim tarihi: 9 Şubat 2014.
- ^ "Manual:Installation requirements#PHP". MediaWiki. 25 Ocak 2010. 27 Mayıs 2010 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Şubat 2010.
PHP is the programming language in which MediaWiki is written [...]
- ^ "About WordPress". 18 Mayıs 2022 tarihinde kaynağından . Erişim tarihi: 26 Şubat 2010.
WordPress was [...] built on PHP
- ^ Kempkens, Alex. "Joomla! — Content Management System to build websites & apps". 6 Şubat 2024 tarihinde kaynağından . Erişim tarihi: 7 Şubat 2024.
- ^ "PHP and Drupal". Drupal.org. 16 Eylül 2007. 8 Şubat 2010 tarihinde kaynağından . Erişim tarihi: 13 Haziran 2010.
- ^ "About". Moodle.org. 11 Ocak 2010 tarihinde kaynağından . Erişim tarihi: 20 Aralık 2009.
- ^ . 28 Kasım 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 13 Ekim 2014.
SilverStripe requires PHP 5.3.2+
- ^ a b "Usage statistics of PHP for websites". W3Techs – World Wide Web Technology Surveys. W3Techs. Erişim tarihi: 28 Ocak 2024.
- ^ "Usage Statistics and Market Share of PHP Version 4 for Websites, January 2024". w3techs.com.
- ^ a b "Usage Statistics and Market Share of PHP Version 5 for Websites, January 2024". w3techs.com.
- ^ "Usage Statistics and Market Share of PHP Version 7 for Websites, January 2024". w3techs.com.
- ^ "Usage Statistics and Market Share of PHP Version 8 for Websites, January 2024". w3techs.com.
- ^ Ide, Andy (31 Ocak 2013). "PHP just grows & grows". 20 Nisan 2013 tarihinde kaynağından . Erişim tarihi: 1 Nisan 2013.
- ^ "National Vulnerability Database (NVD) Search Vulnerabilities Statistics". 24 Ekim 2020 tarihinde kaynağından . Erişim tarihi: 22 Kasım 2019.
- ^ "PHP: rfc:taint". wiki.php.net. 6 Şubat 2024 tarihinde kaynağından . Erişim tarihi: 7 Şubat 2024.
- ^ "Developer Meeting Notes, Nov. 2005". 16 Temmuz 2023 tarihinde kaynağından . Erişim tarihi: 7 Şubat 2024.
- ^ . 26 Şubat 2009 tarihinde kaynağından arşivlendi.
- ^ . 15 Ağustos 2008. 24 Şubat 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 22 Ağustos 2019.
- ^ "Security: Using Register Globals". PHP Manual. PHP.net. 27 Eylül 2013 tarihinde kaynağından . Erişim tarihi: 22 Eylül 2013.
- ^ "Magic Quotes". PHP Manual. PHP.net. 8 Şubat 2014 tarihinde kaynağından . Erişim tarihi: 17 Ocak 2014.
- ^ "'engine' configuration directive". PHP: Runtime Configuration. PHP.net. 9 Şubat 2014 tarihinde kaynağından . Erişim tarihi: 13 Şubat 2014.
- ^ . 22 Haziran 2007. 27 Eylül 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 22 Eylül 2013.
- ^ "PHP security exploit with GIF images". PHP Classes blog. 20 Haziran 2007. 22 Eylül 2013 tarihinde kaynağından . Erişim tarihi: 22 Eylül 2013.
- ^ . 4 Haziran 2007. 21 Eylül 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 22 Eylül 2013.
- ^ "'enable_dl' configuration directive". PHP: Runtime Configuration. PHP.net. 9 Şubat 2014 tarihinde kaynağından . Erişim tarihi: 13 Şubat 2014.
- ^ "PHP function reference: dl()". PHP.net. 26 Eylül 2013 tarihinde kaynağından . Erişim tarihi: 22 Eylül 2013.
- ^ "My host won't fix their Trojan". WebHosting Talk. 28 Eylül 2013 tarihinde kaynağından . Erişim tarihi: 22 Eylül 2013.
- ^ Raz0r (25 Ocak 2013). "Simple Machines Forum <= 2.0.3 Admin Password Reset". 3 Aralık 2023 tarihinde kaynağından . Erişim tarihi: 7 Şubat 2024.
- ^ Nibble Security. "TYPO3-SA-2010-020, TYPO3-SA-2010-022 EXPLAINED". 4 Ocak 2011 tarihinde kaynağından . Erişim tarihi: 7 Şubat 2024.
- ^ "Криптостойкость и небезопасное сравнение". Ahack.ru (Rusça). 2 Temmuz 2014 tarihinde kaynağından . Erişim tarihi: 7 Şubat 2024.
- ^ "Comparison operators". PHP.net. 8 Şubat 2024 tarihinde kaynağından . Erişim tarihi: 7 Şubat 2024.
- ^ Krawczyk, Pawel (2013). . IPSec.pl. 15 Nisan 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Nisan 2015.
- ^ Krawczyk, Pawel (2013). "So what are the "most critical" application flaws? On new OWASP Top 10". IPSec.pl. 15 Nisan 2015 tarihinde kaynağından . Erişim tarihi: 15 Nisan 2015.
- ^ "Usage Statistics and Market Share of PHP for Websites, December 2023". w3techs.com. Erişim tarihi: 23 Aralık 2020.
- ^ "PHP: Rand - Manual". 5 Şubat 2024 tarihinde kaynağından . Erişim tarihi: 7 Şubat 2024.
- ^ "PHP: Mt_rand - Manual". 7 Şubat 2024 tarihinde kaynağından . Erişim tarihi: 7 Şubat 2024.
- ^ "PHP: Random_int - Manual". 23 Aralık 2023 tarihinde kaynağından . Erişim tarihi: 7 Şubat 2024.
- ^ "I Forgot Your Password: Randomness Attacks Against PHP Applications". www.readkong.com. 16 Temmuz 2023 tarihinde kaynağından . Erişim tarihi: 7 Şubat 2024.
Dış bağlantılar
- PHP Ana Sayfa*9 Mart 2011 tarihinde Wayback Machine sitesinde .
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
PHP Hypertext Preprocessor Turkce Ustunyazi Onislemcisi Aslen Personal Home Page Kisisel Ana Sayfa internet icin uretilmis sunucu tarafli cok genis kullanimli genel amacli icerisine HTML gomulebilen betik ve programlama dilidir Ilk kez 1995 yilinda Rasmus Lerdorf tarafindan yaratilan PHP nin gelistirilmesi bugun PHP toplulugu tarafindan surdurulmektedir Ocak 2013 itibariyla 244 milyondan fazla web sitesi PHP ile calisirken 2 1 milyon web sunucusunda PHP kurulumu bulunmaktadir PHPParadigmasicok paradigmali zorunlu nesne yonelimli yordamsal Ilk cikisi8 Haziran 1995 29 yil once 1995 06 08 TasarimciRasmus LerdorfGelistiriciPHP Grubu Zend Technologies PHP FoundationKararli surum8 3 2 18 Ocak 2024 5 ay once 2024 01 18 Zend Engine HipHopEtkilendikleriC Perl Java C TclEtkiledikleri JSP ASPUygulama diliCPlatformucapraz platformLisansPHP LisansiOlagan dosya uzantilari php phar phtml pht phpsWeb sitesiwww php netLAMP Squid yazilim PHP kodlari PHP isleme modulu bulunan bir web sunucusu tarafindan yorumlanir ve cikti olarak web sayfasi uretilir Bu kodlar veriyi islemek uzere harici bir dosyaya kaydedilerek cagirilabildigi gibi dogrudan HTML kodunun icine de gomulebilir PHP zaman icinde bir komut satiri arayuzu sunacak sekilde evrilmistir PHP GTK yardimiyla grafiksel masaustu uygulamasi gelistirmek de mumkundur PHP ozgur bir yazilim olup PHP Lisansi ile dagitilmaktadir Bu lisans kullanim sartlari kisminda GNU Genel Kamu Lisansi ile ortusmese de PHP tum web sunuculara ve hemen hemen tum isletim sistemi ve platforma ucretsiz olarak yuklenebilir TarihcePHP nin gelistirilmesi 1994 yilinda Rasmus Lerdorf un kisisel web sitesini yonetmek icin bir takim CGI Ingilizce Common Gateway Interface Perl betikleri yazmasiyla basladi Rasmus bu betikler yardimiyla ozgecmisini sitede goruntuluyor ve sitenin ziyaretci trafigini kaydediyordu Bir sure sonra web formlari ile etkilesime girebilecek veritabanlari ile iletisim kurabilecek ve daha hizli calisabilecek sekilde bu betikleri C ile yeniden kodladi ve bu uygulamaya Kisisel Ana Sayfa Form Yorumlayici PHP FI Ingilizce Personal Home Page Forms Interpreter adini verdi PHP FI yardimiyla basit anlamda dinamik web siteleri olusturmak oldukca kolaydi Rasmus 8 Haziran 1995 tarihinde hata ayiklama surecini hizlandirmak ve kaynak kodu iyilestirmek uzere bir Usenet tartisma grubunda PHP FI uygulamasini Personal Home Page Tools PHP Tools adiyla ilk kez duyurdu 2013 yili itibariyla PHP icinde mevcut olan Perl benzeri degisken tanimlama form yonetimi ve betik kodlari arasina HTML kodu yerlestirebilme gibi temel ozellikler bu ilk surumde de mevcuttu Sozdizimi genel olarak Perl e benzese de daha kisitli ve basit ancak daha tutarsizdi Bir gelistirme takimiyla aylar suren calisma ve test asamalarinin ardindan PHP FI 2 surumu 1997 Kasim ayinda resmi olarak duyuruldu Zeev Suraski ve Andi Gutmans 1997 yilinda bastan yazdilar ve dilin ismini PHP Hypertext Preprocessor olarak degistirerek PHP 3 un temellerini attilar Bunu PHP 3 un herkese acik olan test surecinin baslamasi izledi ve 1998 yilinin Haziran ayinda PHP 3 resmi olarak duyuruldu Suraski ve Gutmans bu surecin ardindan PHP nin cekirdegini sil bastan kodlamak suretiyle 1999 yilinda Zend Motorunu gelistirdiler ve Israil in Ramat Gan kentinde Zend Technologies isimli bir sirket kurdular 22 Mayis 2000 tarihinde temelleri Zend Engine 1 0 ile guclendirilmis PHP 4 duyuruldu ve Agustos 2008 itibariyla 4 4 9 surumune ulasana kadar aktif olarak gelistirildi Bugun PHP 4 un gelistirilmesi durdurulmustur ve guvenlik guncellemeleri dahil olmak uzere uzerinde hicbir iyilestirme yapilmamaktadir 13 Temmuz 2004 tarihinde yeni Zend Engine II ile guclendirilmis PHP 5 yayinlandi PHP 5 nesneye yonelik programlama icin cok daha fazla olanak sagliyor PHP Veri Nesneleri PDO eklentisi yardimiyla veritabanlarina erisim icin oldukca tutarli ve hizli bir arayuz yaninda performansa yonelik cok sayida iyilestirme barindiriyordu 2008 yilinda PHP 4 un tutarli surumunun yayinlanmasi durduruldu ve PHP 5 gelistirilmesi devam eden tek tutarli surum oldu PHP Ingilizce Late static binding ozelligi barindirmiyordu ancak 5 3 surumu ile bu onemli eksik giderildi Surum gecmisiAnlamiKirmizi Artik desteklenmeyen surumSari Yalnizca guvenlik duzeltmeleri alan surumYesil Aktif olarak desteklenen surumMavi Gelecek surum ya da BETA surumAna Surum Ek Surum Yayin Tarihi Notlar1 1 0 0 1995 06 08 Personal Home Page Tools Kisisel Anasayfa Araclari olarak aniliyordu ve kisaltimi PHP idi 2 2 0 0 1997 11 01 Yaraticisi ve en hizli ve en sade arac olarak web sayfalari icin gelistirdi 3 3 0 0 1998 06 06 Surum kisisellikten kurumsalliga gecti Zeev Suraski ve Andi Gutmans tekrar basit dil bilgisini yazdi 4 4 0 0 2000 05 22 Daha ileri seviye dil bilgisi eklendi Zend Motoru denilen dil bilgisi denetleyicisi getirildi 4 1 0 2001 12 10 Super globaller tanistirildi GET POST SESSION SERVER vb 4 2 0 2002 04 22 register globals ontanimli olarak engellendi 4 3 0 2002 12 27 tanistirildi CGI ekleri yapildi 4 4 0 2005 07 11 phpize ve php config betikleri icin eklenmeler yapildi 4 4 8 2008 01 03 Cogu guvenlik sorunlari ve hatalar duzeltildi Son kalici PHP 4 surumu oldu Gerekli ise guvenlik guncellemeleri 2008 08 08 e kadar surdu 4 4 9 2008 08 07 Daha fazla acik onarildi PHP 4 serileri icin son surum oldu 5 5 0 0 2004 07 13 Zend Motoru II ile yeni obje modelleri gelistirildi 5 1 0 2005 11 24 Eklenen degiskenler ile performans artisi gozlemlendi 5 2 0 2006 11 02 Filtreleme ontenimli olarak iptal edildi 5 2 11 2009 09 16 Hata ve guvenlik sorunlari cozuldu 5 2 12 2009 02 25 Guvenlik ve veri tabani iletisimi guclendirildi 60 adet hata duzeltildi 5 2 13 2010 07 22 Hatalar duzeltildi 5 2 14 2010 12 17 Hatalar duzeltildi PHP 5 2 x surumleri gelistirilmesi durduruldu 5 3 0 2009 06 30 destegi Atlama kodlari goto ile limitlendi Yerli PHP arsivlemesi phar Windows destegi arttirildi sqlite3 gelistirildi fileinfo mime magic yerine daha iyi bir MIME destegi icin getirildi uluslararasi olarak ereg kod yapisi iptal edildi 5 3 1 2009 11 19 100 den fazla hata duzeltildi bazi kucuk sorunlar da duzeltildi 5 3 2 2010 03 04 Cok genis bir hata duzeltimi yapildi 5 3 3 2010 07 22 Baslica hata ve guvenlik sorunlari onarildi FPM olu kirik baglanti 5 4 2012 03 01 Trait destegi geldi diziler icin kisa sozdizimi destegi geldi Register globals safe mode allow call time pass reference konfigurasyon degerleri session register session unregister ve session is registered metotlari ile birlikte kaldirildi Dahili web sunucu destegi eklendi Bellek kullanimi dusuruldu mevcut fonksiyonelite uzerinde performansi artiran cok sayida iyilestirme yapildi 5 5 2013 06 20 Yeni makine kodu onbellekleme eklentisi Zend Optimizer geldi GD resim isleme kutuphanesine yeni fonksiyonlar eklendi Parola sifreleme islemlerini kolaylastirmak ve daha ust seviyede guvenlik sunmak uzere password hash ve password verify metotlari geldi try catch sozdizimine diger ust seviye dillerde bulunan finally blogu eklendi 5 6 2014 08 28 Belirsiz sayida parametre alan fonksiyonlar variadic functions sabitlere const numerik islemlerle tanim yapabilme us alma operatoru eklendi 7 7 0 2015 12 03 Zend Engine 3 0 ile onceki surumlere gore performansi onemli derecede arttirildi Operatoru lt gt uc yollu karsilastirma operatoru ve anonymous siniflar eklendi Unicode destegi geldi 7 1 2016 12 01 Void tipi eklendi sinif sabitlerini const kapsulleme bosaltilabilir nullable tip birden fazla hata exception handling yakalayabilme 7 2 2017 11 30 Object tipi eklendi abstract metodlar artik override edilebiliyor 7 3 2018 12 06 is countable fonsiyonu Esnek Heredoc ve Nowdoc Sozdizimleri7 4 2019 11 28 Ok fonksiyon on yukleme siniflarda tip ozelligi gelistirilmis tip varyanslari dizilerde dagitma operatoru null isaretleme operatoru8 8 0 2020 12 3 Isimli parametreler union turleri nitelikler constructor nitelik promosyonu nullsafe operatoru match ifadesi JIT Just in Time static turunde deger dondurme mixed turu throw ifadesi nesnelerde class sozdizimi try catch sozdiziminin hata degiskeni belirtmeden kullanimi parametre listelerinin sonunda virgul kullanimi string degiskenlerde otomatik Stringable arayuze gecis str contains fonksiyonu str starts with ve str ends with fonksiyonlari string birlestirme onceligi 8 0 1 2021 01 07 Bazi hatalar giderildi 8 0 2 2021 02 04 Bazi hatalar giderildi 8 1 0 2021 11 25 Sayilama Ingilizce enum destegi eklendi 8 2 0 2022 12 08 Sadece okunabilir siniflar Ingilizce Readonly classes eklendi 8 3 2 2024 01 18 Sinif sabitlerinin acikca yazilmasi salt okunur ozelliklerin derinlemesine klonlanmasi ve rastgelelik islevine yapilan eklemeler gibi bircok yeni ozellik icerir Her zaman oldugu gibi performans iyilestirmeleri hata duzeltmeleri ve genel temizlik de iceriyor Ek bilgilerPHP ozellikle MySQL veritabaniyla birlikte ve Linux isletim sistemi altinda iyi bir performans sergilemektedir C C diline olan benzerligi nedeniyle bu dili onceden bilenlerin PHP ogrenmesi oldukca kolaydir Kolay ogrenilmesi ve hizli performansi nedeniyle Facebook YouTube Yahoo Wikipedia ve OGame gibi dunyaca unlu sitelerin yaziminda kullanilmasina ragmen kodlarin kolay anlasilabilmesi acisindan ve birden fazla programci tarafindan surekli gelistirilmesi gerekli buyuk projelerde Java nin kullanilmasi daha uygun gorulmektedir Ancak sadece web tabanli yazilimin gelistirilmesi soz konusu oldugunda Java ya gore ogrenilmesinin daha kolay olmasi nedeniyle genellikle PHP tercih edilmektedir PHP web tasariminda onemli kolayliklar saglasa da 2005 te Google in AJAX kullanmaya baslamasindan sonra tek basina ogrenilmesi yeterli olmamakta ve AJAX i ogrenmek icin gerekli JavaScript XML HTML ve CSS ile birlikte bir butun olusturabilmektedir GelistiricilerOnemli PHP GelistiricileriRasmus Lerdorf Andi Gutmans Zeev SuraskiDanimarka asilli Kanadali programci PHP nin mucidi ve 2002 den beri Yahoo Sirketi icin calismakta Ayni zamanda Apache HTTP Sunucusu projesinin baslamasini sagladi Joomla gibi GNU PHP projelerin guvenligini kontrol ediyor Israil asilli programci PHP nin gelismesinde cok emegi olmustur Ayni zamanda hakkindaki cok onemlidir Israil asilli programci icat etti PHP icin bir betik motoru ve derleyici olusturdu Program dizimiAsagidaki ornek programda HTML icerisine gomulu PHP kodunu gorebilirsiniz lt DOCTYPE html gt lt html gt lt head gt lt title gt PHP Testi lt title gt lt head gt lt body gt lt php echo lt p gt Merhaba Dunya lt p gt gt lt body gt lt html gt Unutmayin ki PHP kodunun HTML icerisinde gomulu olmasi zorunlu degildir Benzeri bir program asagidaki gibi yazilabilir lt Hello world gt FonksiyonlarPHP yazilimi buyuk bir fonksiyon kutuphanesi ile birlikte gelir Gomulu fonksiyonlarin haricinde kendi fonksiyonunuzu asagidaki gibi tanimlayabilirsiniz lt php function yasimiGetir dogumYili yas date Y dogumYili return yas echo yasimiGetir 1981 yasindayim gt lt php function topla a b return a b echo topla 5 10 15 gt KullanimLAMP yazilim paketine genel bir bakis burada Squid ile birlikte gosterilmektedir PHP ozellikle sunucu tarafli web gelistirmeye uygun genel amacli bir kodlama dilidir bu durumda PHP genellikle bir web sunucusunda calisir Istenen dosyadaki herhangi bir PHP kodu genellikle dinamik web sayfasi icerigi veya web sitelerinde veya baska yerlerde kullanilan dinamik goruntuler olusturmak icin PHP calisma zamani tarafindan yurutulur Ayrica komut satiri komut dosyalari olusturma ve istemci tarafi grafik kullanici arabirimi GUI uygulamalari icin de kullanilabilir PHP cogu web sunucusuna bircok isletim sistemine ve platforma dagitilabilir ve bircok iliskisel veritabani yonetim sistemi RDBMS ile kullanilabilir Cogu web barindirma saglayicisi musterileri tarafindan kullanilmak uzere PHP yi destekler Ucretsiz olarak mevcuttur ve PHP Grubu kullanicilarin kendi kullanimlari icin olusturmalari ozellestirmeleri ve genisletmeleri icin eksiksiz kaynak kodu saglar Dinamik web sayfasi sunucu tarafi komut dosyasi olusturma ornegi PHP ve MySQL Baslangicta dinamik web sayfalari olusturmak icin tasarlanan PHP artik esas olarak sunucu tarafi komut dosyasi yazmaya odaklanmaktadir ve Python Microsoft un ASP NET Sun Microsystems in JavaServer Pages ve mod perl gibi web sunucusundan istemciye dinamik icerik saglayan diger sunucu tarafi komut dosyasi dillerine benzer PHP ayrica hizli uygulama gelistirmeyi RAD tesvik etmek icin yapi taslari ve tasarim yapisi saglayan bircok yazilim cercevesinin gelistirilmesini de kendine cekmistir Bunlardan bazilari PRADO CakePHP Symfony CodeIgniter Laravel Yii Framework Phalcon ve Laminas tir ve diger web cercevelerine benzer ozellikler sunar LAMP mimarisi web uygulamalarini dagitma yolu olarak web endustrisinde populer oldu PHP bu pakette Linux Apache ve MySQL ile birlikte P olarak cok kullanilir ancak P ayni zamanda Python Perl veya ucunun bir karisimini da ifade edebilir Benzer paketler WAMP ve MAMP Windows ve macOS icin de vardir ve ilk harf ilgili isletim sistemini temsil eder Hem PHP hem de Apache macOS temel kurulumunun bir parcasi olarak saglansa da bu paketlerin kullanicilari daha kolay guncel tutulabilecek daha basit bir kurulum mekanizmasi aramaktadir Belirli ve daha gelismis kullanim senaryolari icin PHP C veya C dilinde ozel uzantilar yazmak icin iyi tanimlanmis ve belgelenmis bir yol sunar Uzantilar dilin kendisini ek kitapliklar biciminde genisletmenin yani sira kritik oldugu durumlarda yurutme hizini artirma yolunu saglar ve gercek bir derlenmis dil kullanarak iyilestirmelere yer vardir PHP ayrica kendisini diger yazilim projelerine dahil etmek icin iyi tanimlanmis yollar sunar Bu sekilde PHP baska bir proje icin dahili bir kodlama dili olarak kolayca kullanilabilir ve ayni zamanda projenin belirli dahili veri yapilariyla siki bir arayuz saglar PHP cekirdek dil duzeyinde coklu is parcacigi desteginin bulunmamasi nedeniyle karisik elestiriler aldi ancak is parcaciklarini kullanmak pthreads PECL uzantisi tarafindan mumkun kilindi PHP icin bir komut satiri arayuzu php cli ve iki ActiveX Windows Komut Dosyasi Ana Bilgisayari komut dosyasi olusturma motoru uretildi Populerlik ve kullanim istatistikleri PHP MediaWiki WordPress Joomla Drupal Moodle eZ Publish eZ Platform ve SilverStripe dahil olmak uzere Web icerik yonetim sistemlerinde kullanilir 28 Ocak 2024 teki PHP surumlerinin kullanim payi PHP 8 3 0 19 PHP 8 2 3 80 PHP 8 1 9 34 PHP 8 0 10 59 PHP 7 4 39 93 PHP 7 3 8 11 PHP 7 2 5 82 PHP 7 1 2 59 PHP 7 0 2 35 PHP 5 6 9 23 PHP 5 5 2 65 PHP 5 4 2 55 PHP 5 3 1 44 PHP 5 2 1 18 PHP 5 1 0 07 Ocak 2013 itibariyla PHP 240 milyondan fazla web sitesinde kullanilmis orneklenenlerin 39 u ve 2 1 milyon web sunucusuna kurulmustur 28 Ocak 2024 tarihi itibariyla PHP 8 3 un yayinlanmasindan 2 ay sonra dilin belirlenebildigi web sitelerinin 76 5 inde sunucu tarafi programlama dili olarak PHP kullanilmaktadir PHP 7 dilin en cok kullanilan surumudur PHP kullanan web sitelerinin 58 8 i bu surumu kullanirken 23 9 u PHP 8 ve 17 1 i PHP 5 kullanmaktadir Guvenlik2019 da Ulusal Guvenlik Acigi Veritabani tarafindan listelenen tum guvenlik aciklarinin 11 i PHP ile baglantiliydi Tarihsel olarak 1996 dan bu yana bu veri tabaninda listelenen tum guvenlik aciklarinin yaklasik 30 u PHP ile baglantilidir Dilin kendisinin veya cekirdek kitapliklarinin teknik guvenlik kusurlari sik gorulen bir durum degildir 2009 da 22 toplamin yaklasik 1 i ancak PHP listelenen programlarin yaklasik 20 si icin gecerlidir Programcilarin hata yaptigini kabul eden bazi diller bircok soruna neden olan girdi dogrulama eksikligini otomatik olarak tespit etmek icin hata kontrolu icerir Boyle bir ozellik PHP icin gelistirilmektedir ancak bunun bir surume dahil edilmesi gecmiste birkac kez reddedilmistir Web barindirma ortamlari icin ozel olarak tasarlanmis Suhosin ve Hardening Patch gibi gelismis koruma yamalari bulunmaktadir Gecmiste PHP nin eski surumlerinde bazi yapilandirma parametreleri ve bu tur calisma zamani ayarlari icin varsayilan degerler vardi bu da bazi PHP uygulamalarini guvenlik sorunlarina acik hale getiriyordu Bunlar arasinda magic quotes gpc ve register globals yapilandirma direktifleri en iyi bilinenleriydi ikincisi herhangi bir URL parametresinin PHP degiskenleri haline gelmesini sagladi ve bir saldirganin herhangi bir baslatilmamis global degiskenin degerini ayarlamasina ve bir PHP betiginin yurutulmesine mudahale etmesine izin vererek ciddi guvenlik aciklarina yol acti magic quotes ve register globals ayarlari destegi PHP 5 3 0 dan beri kullanimdan kaldirilmis ve PHP 5 4 0 dan silinmistir Calisma zamani ayarlari olasi guvenlik acigina baska bir ornek yuklenen dosyalarin depolandigi dizin icin PHP yurutmesinin devre disi birakilmamasindan ornegin engine yapilandirma direktifi kullanilarak kaynaklanir Bunun etkinlestirilmesi yuklenen dosyalara yerlestirilmis kotu amacli kodun yurutulmesine neden olabilir En iyi uygulama goruntu dizinini web sunucusunun kullanabilecegi belge kokunun disina yerlestirmek ve onu bir araci komut dosyasi araciligiyla sunmak veya yuklenen dosyalari saklayan dizin icin PHP yurutmesini devre disi birakmaktir Ayrica paylasilan bir web barindirma ortaminda PHP uzantilarinin dinamik yuklenmesini etkinlestirmek enable dl yapilandirma yonergesi araciligiyla guvenlik sorunlarina yol acabilir Bazen programcinin amacina aykiri olarak farkli degerlerin esit olarak degerlendirilmesine neden olan ima edilen tip donusumleri guvenlik sorunlarina yol acabilir Ornegin 0e1234 0 karsilastirmasinin sonucu true dur cunku sayi olarak ayristirilabilen dizeler sayilara donusturulur Bu durumda ilk karsilastirilan deger sifir olan 0 101234 degerli bilimsel gosterim olarak kabul edilir Bunun gibi hatalar MD5 sifre karmalari karsilastirildiginda Simple Machines Forum TYPO3 ve phpBB de kimlik dogrulama aciklarina neden oldu Onerilen yol hash equals zamanlama saldirisi guvenligi icin strcmp veya kimlik operatorunu kullanmaktir cunku 0e1234 0 false ile sonuclanir Zone H tarafindan yayinlanan 170 000 den fazla web sitesi tahrifatini kapsayan 2013 analizinde en sik kullanilan teknik 53 cogunlukla PHP dil yapilarinin include require ve allow url fopen in guvensiz kullanimiyla ilgili olan dosya ekleme guvenlik acigindan yararlanilmasiydi 23 Aralik 2023 itibariyla PHP 8 3 surumunden 1 ay sonra W3Techs PHP kullanan web sitelerinin 85 9 unun 8 0 veya daha eski surumleri kullandigini bunlar artik PHP Gelistirme Ekibi tarafindan desteklenmemektedir bildirmektedir 23 Aralik 2023 itibariyla Surum 5 hala tum web sitelerinin 13 6 si tarafindan kullanilmaktadir PHP 8 1 veya sonraki surumlere gecis yapilmasi ve rand veya mt rand yerine random int kullanilmasi onemle tavsiye edilmektedir cunku bu islevler kriptografik acidan guvensizdir PHP entropi kaynaklari uzerinden gerceklestirilebilecek iki saldiri vardir tohum saldirisi ve durum kurtarma saldirisi Mevcut GPU teknolojileriyle bir saldirgan 250 ABD dolari tutarindaki GPU ile saniyede 230 a kadar MD5 hesaplamasi gerceklestirebilirken ek 500 ABD dolari tutarindaki GPU ile 232 ye kadar hesaplamaya ulasabilir Dogum gunu akini ile birlikte bu durum ciddi guvenlik aciklarina yol acabilir Ayrica bakinizVikikitap Vikikitapta bu konu hakkinda daha fazla bilgi var PHP PHP Lisansi PHP Framework PHP Veri Nesneleri PDO Yorumlanan Programlama Dili HTML MySQLKaynakca a b 9 Mart 2011 tarihinde kaynagindan arsivlendi Erisim tarihi 25 Eylul 2010 PHP Kullanim Istatistikleri Ocak 2013 Ingilizce 31 Mayis 2016 tarihinde kaynagindan Erisim tarihi 6 Eylul 2013 PHP Neler Yapabilir Ingilizce 2 Haziran 2016 tarihinde kaynagindan Erisim tarihi 6 Eylul 2013 GPL Incompatible Free Software Licenses Ingilizce 28 Mayis 2016 tarihinde kaynagindan Erisim tarihi 6 Eylul 2013 4 Mart 2016 tarihinde kaynagindan arsivlendi Erisim tarihi 6 Eylul 2013 24 Mart 2016 tarihinde kaynagindan arsivlendi Erisim tarihi 6 Eylul 2013 Why PHP 5 Rocks Ingilizce 31 Mart 2016 tarihinde kaynagindan Erisim tarihi 6 Eylul 2013 4 Aralik 2013 tarihinde kaynagindan arsivlendi Erisim tarihi 6 Eylul 2013 14 Nisan 2016 tarihinde kaynagindan arsivlendi Erisim tarihi 6 Mart 2016 PHP 7 1 New features php net 14 Nisan 2017 tarihinde kaynagindan Erisim tarihi 4 Mayis 2017 PHP 7 2 New features php net 9 Agustos 2018 tarihinde kaynagindan Erisim tarihi 10 Agustos 2018 PHP 7 3 New features php net 12 Ocak 2020 tarihinde kaynagindan Erisim tarihi 14 Ocak 2020 PHP 7 4 New features php net 12 Ocak 2020 tarihinde kaynagindan Erisim tarihi 14 Ocak 2020 18 Mayis 2020 tarihinde kaynagindan arsivlendi Erisim tarihi 17 Mayis 2020 19 Mayis 2020 tarihinde kaynagindan arsivlendi Erisim tarihi 17 Mayis 2020 www php net 25 Kasim 2020 tarihinde kaynagindan arsivlendi Erisim tarihi 20 Subat 2021 www php net 25 Kasim 2020 tarihinde kaynagindan arsivlendi Erisim tarihi 20 Subat 2021 www php net 25 Kasim 2020 tarihinde kaynagindan arsivlendi Erisim tarihi 2 Haziran 2023 www php net Ingilizce 25 Kasim 2021 tarihinde kaynagindan arsivlendi Erisim tarihi 2 Haziran 2023 www php net 25 Kasim 2020 tarihinde kaynagindan arsivlendi Erisim tarihi 2 Haziran 2023 www php net Ingilizce 8 Aralik 2022 tarihinde kaynagindan arsivlendi Erisim tarihi 2 Haziran 2023 PHP PHP 8 3 0 Release Announcement 7 Subat 2024 tarihinde kaynagindan Erisim tarihi 28 Ocak 2024 PHP Manual Image Processing and GD php net 10 Nisan 2011 tarihinde kaynagindan Erisim tarihi 9 Nisan 2011 O Reilly 3 Mayis 2001 19 Subat 2008 tarihinde kaynagindan arsivlendi Erisim tarihi 25 Subat 2008 Indiana University 4 Nisan 2007 21 Ocak 2016 tarihinde kaynagindan arsivlendi Erisim tarihi 25 Subat 2008 JavaServer Pages Technology JavaServer Pages Comparing Methods for Server Side Dynamic Content White Paper Sun Microsystems 2 Subat 2008 tarihinde kaynagindan Erisim tarihi 25 Subat 2008 Five simple ways to tune your LAMP application IBM 25 Ocak 2011 28 Subat 2021 tarihinde kaynagindan Erisim tarihi 7 Subat 2024 PHP net 26 Eylul 2013 tarihinde kaynagindan arsivlendi Erisim tarihi 22 Eylul 2013 PHP at the core The counter Extension A Continuing Example PHP net 26 Eylul 2013 tarihinde kaynagindan Erisim tarihi 22 Eylul 2013 Zend Technologies 1 Mart 2005 24 Eylul 2013 tarihinde kaynagindan arsivlendi Erisim tarihi 22 Eylul 2013 Zend Technologies 6 Haziran 2005 26 Eylul 2013 tarihinde kaynagindan arsivlendi Erisim tarihi 22 Eylul 2013 Zend Technologies 6 Haziran 2005 26 Eylul 2013 tarihinde kaynagindan arsivlendi Erisim tarihi 22 Eylul 2013 Zend Technologies 12 Mayis 2006 26 Eylul 2013 tarihinde kaynagindan arsivlendi Erisim tarihi 22 Eylul 2013 Zend Technologies 22 Nisan 2009 20 Eylul 2013 tarihinde kaynagindan arsivlendi Erisim tarihi 22 Eylul 2013 Stack Overflow 27 Eylul 2013 tarihinde kaynagindan arsivlendi Erisim tarihi 22 Eylul 2013 How can I use C code to interact with PHP Stack Overflow Erisim tarihi 22 Eylul 2013 Golemon Sara 2006 Extending and Embedding PHP Sams ISBN 978 0 672 32704 9 Request 46919 Multithreading PHP net 27 Eylul 2013 tarihinde kaynagindan Erisim tarihi 22 Eylul 2013 pthreads Introduction PHP Manual PHP net 27 Eylul 2013 tarihinde kaynagindan Erisim tarihi 22 Eylul 2013 PECL Package pthreads pecl php net 26 Mart 2014 tarihinde kaynagindan Erisim tarihi 9 Subat 2014 Manual Installation requirements PHP MediaWiki 25 Ocak 2010 27 Mayis 2010 tarihinde kaynagindan arsivlendi Erisim tarihi 26 Subat 2010 PHP is the programming language in which MediaWiki is written About WordPress 18 Mayis 2022 tarihinde kaynagindan Erisim tarihi 26 Subat 2010 WordPress was built on PHP Kempkens Alex Joomla Content Management System to build websites amp apps 6 Subat 2024 tarihinde kaynagindan Erisim tarihi 7 Subat 2024 PHP and Drupal Drupal org 16 Eylul 2007 8 Subat 2010 tarihinde kaynagindan Erisim tarihi 13 Haziran 2010 About Moodle org 11 Ocak 2010 tarihinde kaynagindan Erisim tarihi 20 Aralik 2009 28 Kasim 2014 tarihinde kaynagindan arsivlendi Erisim tarihi 13 Ekim 2014 SilverStripe requires PHP 5 3 2 a b Usage statistics of PHP for websites W3Techs World Wide Web Technology Surveys W3Techs Erisim tarihi 28 Ocak 2024 Usage Statistics and Market Share of PHP Version 4 for Websites January 2024 w3techs com a b Usage Statistics and Market Share of PHP Version 5 for Websites January 2024 w3techs com Usage Statistics and Market Share of PHP Version 7 for Websites January 2024 w3techs com Usage Statistics and Market Share of PHP Version 8 for Websites January 2024 w3techs com Ide Andy 31 Ocak 2013 PHP just grows amp grows 20 Nisan 2013 tarihinde kaynagindan Erisim tarihi 1 Nisan 2013 National Vulnerability Database NVD Search Vulnerabilities Statistics 24 Ekim 2020 tarihinde kaynagindan Erisim tarihi 22 Kasim 2019 PHP related vulnerabilities on the National Vulnerability Database 5 Temmuz 2012 28 Haziran 2009 tarihinde kaynagindan Erisim tarihi 1 Nisan 2013 PHP rfc taint wiki php net 6 Subat 2024 tarihinde kaynagindan Erisim tarihi 7 Subat 2024 Developer Meeting Notes Nov 2005 16 Temmuz 2023 tarihinde kaynagindan Erisim tarihi 7 Subat 2024 26 Subat 2009 tarihinde kaynagindan arsivlendi 15 Agustos 2008 24 Subat 2019 tarihinde kaynagindan arsivlendi Erisim tarihi 22 Agustos 2019 Security Using Register Globals PHP Manual PHP net 27 Eylul 2013 tarihinde kaynagindan Erisim tarihi 22 Eylul 2013 Magic Quotes PHP Manual PHP net 8 Subat 2014 tarihinde kaynagindan Erisim tarihi 17 Ocak 2014 engine configuration directive PHP Runtime Configuration PHP net 9 Subat 2014 tarihinde kaynagindan Erisim tarihi 13 Subat 2014 22 Haziran 2007 27 Eylul 2013 tarihinde kaynagindan arsivlendi Erisim tarihi 22 Eylul 2013 PHP security exploit with GIF images PHP Classes blog 20 Haziran 2007 22 Eylul 2013 tarihinde kaynagindan Erisim tarihi 22 Eylul 2013 4 Haziran 2007 21 Eylul 2013 tarihinde kaynagindan arsivlendi Erisim tarihi 22 Eylul 2013 enable dl configuration directive PHP Runtime Configuration PHP net 9 Subat 2014 tarihinde kaynagindan Erisim tarihi 13 Subat 2014 PHP function reference dl PHP net 26 Eylul 2013 tarihinde kaynagindan Erisim tarihi 22 Eylul 2013 My host won t fix their Trojan WebHosting Talk 28 Eylul 2013 tarihinde kaynagindan Erisim tarihi 22 Eylul 2013 Raz0r 25 Ocak 2013 Simple Machines Forum lt 2 0 3 Admin Password Reset 3 Aralik 2023 tarihinde kaynagindan Erisim tarihi 7 Subat 2024 Nibble Security TYPO3 SA 2010 020 TYPO3 SA 2010 022 EXPLAINED 4 Ocak 2011 tarihinde kaynagindan Erisim tarihi 7 Subat 2024 Kriptostojkost i nebezopasnoe sravnenie Ahack ru Rusca 2 Temmuz 2014 tarihinde kaynagindan Erisim tarihi 7 Subat 2024 Comparison operators PHP net 8 Subat 2024 tarihinde kaynagindan Erisim tarihi 7 Subat 2024 Krawczyk Pawel 2013 IPSec pl 15 Nisan 2015 tarihinde kaynagindan arsivlendi Erisim tarihi 15 Nisan 2015 Krawczyk Pawel 2013 So what are the most critical application flaws On new OWASP Top 10 IPSec pl 15 Nisan 2015 tarihinde kaynagindan Erisim tarihi 15 Nisan 2015 Usage Statistics and Market Share of PHP for Websites December 2023 w3techs com Erisim tarihi 23 Aralik 2020 PHP Rand Manual 5 Subat 2024 tarihinde kaynagindan Erisim tarihi 7 Subat 2024 PHP Mt rand Manual 7 Subat 2024 tarihinde kaynagindan Erisim tarihi 7 Subat 2024 PHP Random int Manual 23 Aralik 2023 tarihinde kaynagindan Erisim tarihi 7 Subat 2024 I Forgot Your Password Randomness Attacks Against PHP Applications www readkong com 16 Temmuz 2023 tarihinde kaynagindan Erisim tarihi 7 Subat 2024 Dis baglantilarPHP Ana Sayfa 9 Mart 2011 tarihinde Wayback Machine sitesinde