---
title: "Notepad++ Nedir, Nasıl Kurulur? PHP İçin Doğru Ayarlar"
url: "https://cilginyazilim.com/blog/notepad-plus-plus-nedir-nasil-kurulur"
description: "Notepad++ nedir, nasıl kurulur ve PHP dosyaları için hangi ayarlar gerekir? UTF-8 BOM'un yol açtığı headers already sent hatası ve kalıcı çözümü."
published: "2026-09-29T16:33:50+03:00"
modified: "2026-09-29T16:43:50+03:00"
author: "Çılgın Yazılım"
category: "Geliştirici Araçları"
tags: ["php", "geliştirme ortamı", "editorconfig", "windows", "karakter kodlama"]
site: "CılgınYazılım"
language: "tr"
---

# 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.

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:

```powershell
Get-FileHash .\npp.8.9.8.1.Installer.x64.exe -Algorithm SHA256
```

## PHP 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
<?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:

```text
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ı](https://cilginyazilim.com/blog/vs-code-verimlilik-ayarlari-ve-kisayollar) ile [hata ayıklayıcıyı gerçekten kullanmak](https://cilginyazilim.com/blog/hata-ayiklayiciyi-gercekten-kullanmak-debugger) 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](https://cilginyazilim.com/blog/editorconfig-ve-bicimlendirici-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](https://npp-user-manual.org/docs/preferences/).

## Sıkça 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.

---

Kaynak: [Notepad++ Nedir, Nasıl Kurulur? PHP İçin Doğru Ayarlar](https://cilginyazilim.com/blog/notepad-plus-plus-nedir-nasil-kurulur)
