Geliştirici Araçları kod örnekli
Notepad++ Nedir, Nasıl Kurulur? PHP İçin Doğru Ayarlar
Notepad++'ı kurmak kolay; PHP için asıl iş kodlamayı seçmek. Yanlış seçilen tek bir seçenek, XAMPP'te görünmeyen bir hatayı tamponsuz bir sunucuda ortaya çıkarabilir.

İçindekiler
Notepad++ nedir? Windows için geliştirilmiş, GPL lisanslı ve ücretsiz bir metin ve kod editörüdür: sözdizimi renklendirme, sekmeli çalışma, çok dosyada arama ve eklentiler sunar. Kurulumu birkaç dakikalık bir iştir. PHP yazacaksanız asıl önemli olan kurulumdan sonraki tek ayardır: yeni dosyaların BOM'suz UTF-8 kaydedilmesi. Bu ayar yanlışsa ortaya çıkan hata yerelde görünmeyip canlı sunucuda çıkabilir.
Menü adları kılavuzdaki gibi İngilizce arayüze göre yazıldı; kritik yerlerde Türkçe karşılıkları da verdik.
İndirme ve kurulum: yalnız resmî siteden
Notepad++ notepad-plus-plus.org adresindeki Downloads sayfasından indirilir; bu yazı hazırlanırken son sürüm 24 Eylül 2026 tarihli 8.9.8.1'di. Güncel Windows için x64 kurulum dosyasını seçin, sihirbazda dil ve kurulum klasörünü onaylayın. Yönetici yetkisi olmayan bir bilgisayardaysanız sürüm sayfasındaki taşınabilir (portable) zip paketi kurulum gerektirmez; klasöre açıp çalıştırmanız yeter.
Sürüm notlarında 8.8.9 bir güvenlik açığı düzeltmesi, 8.9.2 ise güncelleme güvenliğini sıkılaştıran sürüm olarak geçiyor. Bu yüzden programı başka sitelerden indirmeyin ve güncelleme uyarılarını ertelemeyin. Her paket için GPG imzası ve SHA-256 özeti de yayımlanıyor; indirdiğiniz dosyanın özetini PowerShell'de hesaplayıp sürüm sayfasındaki değerle karşılaştırabilirsiniz:
Get-FileHash .\npp.8.9.8.1.Installer.x64.exe -Algorithm SHA256PHP dosyaları için ilk ayar: UTF-8, BOM'suz
Settings > Preferences > New Document bölümünde Encoding olarak UTF-8 seçin, "UTF-8 with BOM" değil. Kılavuzun tarifiyle BOM, dosyanın başına eklenen ek bir Unicode karakteridir (U+FEFF); diskte EF BB BF baytları olarak durur. Aynı bölümdeki "Apply to opened ANSI files" seçeneği yalnız boş ya da tamamen ASCII olan dosyaları UTF-8 olarak açar; içinde Windows-1254 ile kaydedilmiş "ş", "ğ" bulunan eski dosyalara dokunmaz. Onları aşağıdaki Convert to UTF-8 ile sizin çevirmeniz gerekir.
Türkçe arayüzde bu ayar Ayarlar > Tercihler > Yeni Belge altındaki Kodlama bölümündedir ve adlar yanıltıcıdır: doğru seçim "BOM olmadan UTF-8"dir. Yalnız "UTF-8" yazan seçenek, İngilizce arayüzdeki "UTF-8 with BOM"un karşılığıdır; onu seçerseniz her yeni PHP dosyası BOM'lu kaydedilir.
PHP bu üç baytı <?php etiketinden önce gelen düz metin sayar ve çıktıya yazar. Çıktı başladıktan sonra header() çalışamaz. Aşağıdaki dosya BOM'lu kaydedildi:
<?php
header('Location: /giris');
echo 'tamam';Sayfadan kopyalanan metin BOM taşımaz; denemek için dosyayı Encoding > UTF-8-BOM ile kaydedin. Aynı dosyayı XAMPP 8.2.12'deki Apache'de iki ayarla çalıştırdık:
php.ini output_buffering | Sonuç |
|---|---|
| 4096 (XAMPP varsayılanı) | Yönlendirme çalışıyor, ama BOM baytları yanıt gövdesine sızıyor |
| 0 (tamponlama kapalı) | Yönlendirme yok; "Cannot modify header information - headers already sent by (output started at …bom.php:1)" uyarısı |
Tuzak tam burada: XAMPP'in çıktı tamponu hatayı gizler, tamponlaması kapalı bir sunucuda aynı dosya bozulur. 4096 yalnız XAMPP'in değil, PHP'nin php.ini-production dosyasının da önerdiği değerdir; php.ini'siz varsayılan ise kapalıdır. Canlıdaki değeri tahmin etmeyin, ini_get('output_buffering') ile görün. Tampon açıkken de BOM kaybolmaz: bu yanıtı başka bir PHP servisi json_decode() ile okursa baştaki üç bayt yüzünden null alır. Uyarıdaki "output started at …:1" ifadesi, çıktının dosyanın ilk satırında, yani görünmeyen BOM'da başladığını söyler.
Var olan bir dosyanın kodlamasını görmek ve düzeltmek
Açık dosyanın kodlaması, pencerenin alt kısmındaki durum çubuğunda yazar: "UTF-8" ya da "UTF-8-BOM". Encoding menüsünde iki tür komut vardır ve farkı önemlidir: menünün üst kısmındaki "ANSI", "UTF-8", "UTF-8-BOM" gibi adlar baytlara dokunmadan dosyayı o kodlamayla yeniden okur; ayırıcı çizginin altındaki "Convert to …" komutları (Türkçe arayüzde "UTF-8'e Dönüştür" gibi) ise dosyayı o kodlamaya çevirip yeniden yazar. BOM'u kaldırmak için Encoding > Convert to UTF-8 seçip dosyayı kaydedin.
Türkçe karakterleri ANSI (Windows-1254) olarak kaydedilmiş bir PHP dosyası, sayfa UTF-8 sunulduğunda "ş" ve "ğ" yerine � işaretleri gösterir. Çözüm yine Convert to UTF-8'dir, ama önce dosyanın doğru okunduğundan emin olun: "ANSI", Windows'un sistem kod sayfası demektir. Türkçe olmayan bir Windows'ta "ş" yerine "þ" görüyorsanız önce Encoding > Character Set > Turkish > Windows-1254 ile dosyayı yeniden okutun, harfler düzelince Convert to UTF-8 ile kaydedin; aksi hâlde yanlış harfler kalıcı olarak UTF-8'e yazılır.
Satır sonu ve kod yazarken işe yarayan özellikler
New Document bölümündeki ikinci ayar satır sonu biçimidir: Windows (CR LF), Unix (LF) ya da eski Macintosh (CR). Linux sunucuda çalışacak kabuk betikleri için Unix (LF) seçin; açık dosyanın satır sonu yine durum çubuğunda görünür.
| Özellik | Nerede | Ne zaman işe yarar |
|---|---|---|
| Yeni dosya kodlaması | Settings > Preferences > New Document | Bir kez, kurulumdan hemen sonra |
| Kodlamayı çevirme | Encoding > Convert to UTF-8 | BOM'lu ya da ANSI eski dosyalarda |
| Çok dosyada arama | Search > Find in Files | Bir fonksiyonun projede nerede kullanıldığını bulmak |
| Dosyayı canlı izleme | View > Monitoring (tail -f) | Log dosyasına yazılanları anında görmek |
| Eklenti yönetimi | Plugins > Plugins Admin | Eksik bir dil ya da araç desteği için |
İzleme özelliği, örneğin CodeIgniter'ın writable/logs klasöründeki günlük dosyasını açık tutup hataları geldikçe görmek için kullanışlıdır.
Eski bir projede toplu arama: Find in Files
Bir klasördeki bütün dosyalarda arama yapmak, Notepad++'ı tek dosyalık bir editörün ötesine taşır. Search > Find in Files (Ctrl+Shift+F) penceresinde Find what alanına aranacak ifadeyi, Filters alanına dosya türünü, Directory alanına proje klasörünü yazın; In all sub-folders kutusu alt klasörleri de kapsar.
Somut bir örnek: PHP 7.0'da kaldırılan mysql_ fonksiyonlarını eski bir projede bulmak. Search Mode olarak Regular Expression seçip şu değerleri girin:
Find what : \bmysql_\w+\s*\(
Filters : *.php
Directory : C:\xampp\htdocs\eski-proje\b, mysqli_ çağrılarını ve my_mysql_query gibi kendi fonksiyonlarınızı dışarıda bırakır; \s* ise mysql_query ( gibi boşluklu yazımı da yakalar. Sonuç panelinde her eşleşme dosya adı ve satır numarasıyla listelenir; satıra çift tıklamak dosyayı o noktada açar. Böylece yeni PHP sürümüne taşınırken hangi dosyaların değişeceği, projeyi çalıştırmadan önce görülür.
Sınırlar: ne zaman başka bir editöre geçmeli?
Notepad++'ın sınırı kod tamamlamada belirir: PHP önerileri hazır bir fonksiyon listesinden ve açık dosyadaki kelimelerden gelir. str_ yazınca str_replace()'i önerir, ama bir CI4 denetleyicisinde $this->request-> yazdığınızda getPost()'u bilemez. Nesneyi ve projeyi tanıyan tamamlama ya da adım adım hata ayıklama gerektiğinde VS Code ayarları ve kısayolları ile hata ayıklayıcıyı gerçekten kullanmak yazıları sonraki adımdır. Ekipte herkes farklı editör kullanıyorsa kodlama ve satır sonunu tek dosyada sabitlemek için EditorConfig kurulumu yazısına bakın.
XAMPP'te sorunsuz yönlenen bir sayfanın başka bir sunucuda "headers already sent" vermesinin sebebi kodda değil, editörün dosyanın başına kaydettiği üç baytta olabilir. Programı yalnız resmî siteden indirip güncel tutun, Yeni Belge (New Document) ayarında BOM'suz UTF-8'i (Türkçe arayüzde "BOM olmadan UTF-8") ve sunucunuza uyan satır sonunu seçin, eski dosyaları Convert to UTF-8 ile çevirin ve durum çubuğundaki kodlamaya bakmayı alışkanlık hâline getirin. "Headers already sent" uyarısı ilk satırı gösteriyorsa önce BOM'dan şüphelenin.
Konunun derinlemesine anlatımı için: Notepad++ User Manual — Preferences.
Sık sorulan sorular
Notepad ile Notepad++ aynı program mı?
Hayır. Notepad, Windows'la birlikte gelen Not Defteri'dir. Notepad++ ise ayrı olarak kurulan, sözdizimi renklendirme, çoklu sekme ve eklenti desteği olan ücretsiz bir kod editörüdür. Adları benzese de farklı ekiplerin ürünleridir.
Notepad++ ücretsiz mi?
Evet. GPL lisansıyla dağıtılan açık kaynak bir yazılımdır; kişisel ve ticari kullanım için ücret istemez. Yalnız notepad-plus-plus.org'dan indirin: her paketin GPG imzası ve SHA-256 özeti orada yayımlanır; başka sitedeki bir kopyanın aynı dosya olduğunu ancak bunlarla doğrulayabilirsiniz.
Notepad++ Mac ya da Linux'ta çalışır mı?
Resmî olarak yalnız Windows için geliştirilir. macOS ya da Linux'ta kod editörü arıyorsanız bu sistemlerde doğrudan çalışan bir editör, örneğin VS Code, daha uygun bir seçimdir.
UTF-8 ile UTF-8-BOM arasındaki fark nedir?
İkisi aynı kodlamadır; UTF-8-BOM dosyanın başına görünmeyen üç bayt (EF BB BF) ekler. PHP bu baytları çıktıya yazar ve ardından gelen header() çağrısını bozabilir. PHP dosyaları için BOM'suz UTF-8 seçilmelidir; Türkçe arayüzde bu seçeneğin adı "BOM olmadan UTF-8"dir.
Yazan
Çılgın Yazılım
Ben Evren Çılgın; yazılım geliştirme, web teknolojileri ve sistem tasarımı alanlarında uzmanlaşmış bir geliştiriciyim. Uzun yıllardır hem frontend hem de backend tarafında üretken, ölçeklenebilir ve kullanıcı dostu çözümler üretiyorum.
Bu konuda bir projeniz mi var?
İhtiyacınızı birkaç cümleyle anlatın; uygun yaklaşımı birlikte belirleyelim.
İlgili yazılar
Yorumlar
Henüz yorum yok. Sorunuzu ya da deneyiminizi ilk siz yazın.
Yorum yazın
Yorumunuz onaylandıktan sonra yayınlanır. Ekibimiz gerekirse konuyla ilgili bir yanıt da paylaşır.

