Telefon rehberi yedeklerini (.vcf / vCard) düzenli bir Excel (.xlsx) listesine çeviren
web uygulaması. Kişi verisi sunucuda saklanmaz.
🔗 Canlı: vcf2excel.selimsimsek.com.tr
Telefon rehberini yedeklediğinizde elinize .vcf uzantılı tek bir dosya geçer. Bu dosya insan
gözüyle okunmak için tasarlanmamıştır: her kişi ayrı bir blok halinde, alanlar kısaltmalarla,
Türkçe karakterler çoğu zaman kodlanmış biçimde yazılır.
BEGIN:VCARD
VERSION:2.1
N;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:Y=C4=B1lmaz;Ay=C5=9Fe;;;
TEL;TYPE=CELL:053-211-12233
TEL;TYPE=CELL:053-211-12233
ORG;CHARSET=UTF-8:Örnek A.Ş.
END:VCARD
Yukarıdaki blok, çıktıda tek bir satır olur: Ayşe Yılmaz · +90 532 111 22 33 · Örnek A.Ş. Kodlanmış karakterler çözülür, tekrar eden numara temizlenir, telefon okunur biçime getirilir.
Rehber, bir kişinin sahip olduğu en özel veri kümelerinden biridir. Bu yüzden uygulama "veriyi koruyoruz" demek yerine veriyi hiç tutmayacak biçimde kurgulandı. Saklanmayan veri sızdırılamaz.
| Ne yapılır | Nerede görebilirsiniz |
|---|---|
Yüklenen dosya belleğe alındığı anda silinir (unlink), isteğin bitmesi beklenmez |
index.php |
Excel paketi diske hiç yazılmadan bellekte üretilir — ZipArchive bilerek kullanılmadı, çünkü geçici dosya gerektirir |
lib/xlsx.php |
| Veritabanında yalnızca gün bazında sayaç sütunları vardır | lib/istatistik.php |
Kaydedilmeyenler: ad, telefon, e-posta, adres, dosya adı, IP adresi, tarayıcı bilgisi, oturum kimliği. Bu alanlar için veritabanında sütun dahi yoktur.
Kaynak kodun herkese açık olmasının sebebi budur: yukarıdaki cümlelere güvenmek zorunda kalmadan, ilgili satırları kendiniz okuyabilirsiniz.
- vCard 2.1 / 3.0 / 4.0 desteği
- Quoted-Printable ve Base64 kodlamalarını çözer; UTF-8 olmayan dosyaları dönüştürür
- İki farklı satır katlama biçimini de birleştirir
- Telefonları
+90 5XX XXX XX XXdüzenine getirir; yurt dışı ve acil numaralara dokunmaz 0532…,+90532…,00905…yazımlarını aynı numara sayarak tekrarları temizler- Aynı ad ve numaraya sahip yinelenen kişileri tek satırda birleştirir
- Türk alfabesine göre sıralar:
O < Ö,S < Ş,U < Ü(hazır sıralama işlevleri bunu yanlış yapar) - Çoklu telefon/e-posta ayrı sütunlara; yalnızca dolu alanlar sütun olur
- Telefonlar metin biçiminde yazılır — baştaki
0ve+kaybolmaz - Başlık satırı sabit, otomatik filtre açık, sütun genişlikleri ayarlı çıktı
- Birden çok
.vcfdosyası tek listede birleştirilebilir
.xlsx aslında zip içine paketlenmiş XML dosyalarıdır. Uygulama bu paketi hazır bir kütüphane
kullanmadan üretir: XML parçaları oluşturulur, CRC32 hesaplanır ve zip yapısı bayt düzeyinde
kurulur. Composer paketi, PHP eklentisi veya derleme adımı gerekmez.
Gereken tek şey: PHP 7.4+ (mbstring) ve isteğe bağlı olarak sayaçlar için MySQL.
git clone https://github.com/slmsmsk/vcf2excel.git
cd vcf2excel
cp config.ornek.php config.php # veritabanı bilgilerini ve panel parolasını girinDosyaları web köküne yükleyin. gunluk_kullanim tablosu ilk çalıştırmada kendiliğinden
oluşturulur; elle SQL çalıştırmanız gerekmez.
Veritabanı kurmak istemiyorsanız bir şey yapmanıza gerek yok — bağlantı kurulamadığında sayaçlar sessizce atlanır, dönüştürme normal biçimde çalışır.
Kullanım istatistikleri: /istatistik.php (parola config.php içindedir).
Aynı dönüştürme mantığının Python sürümü cli/vcf2excel.py dosyasındadır.
Harici kütüphane gerektirmez, yalnızca Python 3 standart kütüphanesini kullanır.
python3 cli/vcf2excel.py rehber.vcf --tr --sirala --tekille| Bayrak | İşlevi |
|---|---|
--tr |
Telefonları +90 5XX XXX XX XX biçimine getirir |
--sirala |
Türkçe alfabeye göre sıralar |
--tekille |
Yinelenen kişileri birleştirir |
--tel-tipi |
Telefon tipi sütunu ekler (Cep, İş, Ev…) |
--tekrarli-telefonlar |
Aynı numaranın tekrarlarını silmez |
-o DOSYA |
Çıktı dosyasını belirler |
| Dosya | İşlevi |
|---|---|
index.php |
Arayüz ve dönüştürme akışı |
lib/vcf.php |
vCard ayrıştırıcısı |
lib/xlsx.php |
Bağımlılıksız XLSX (zip + XML) yazıcısı |
lib/istatistik.php |
Anonim sayaçlar (PDO) |
istatistik.php |
Parola korumalı kullanım paneli |
cli/vcf2excel.py |
Komut satırı sürümü |
MIT © Selim Şimşek
