Saturday, April 25, 2009

phpmailer türkçe karakterlerin outlook ile sorunlu görünmesi meselesi

ÇÖZDÜM-BULDUM


phpmailer php uygulamalarımda tüm mail ihtiyaçlarım için biçilmiş kaftan.
Fakat bir kaç gün önce tesadüfen şunu fark ettim; gönderdiğim utf8 karakterli mailim gmail, yahoo gibi webmail-client lar üzerinden sorunsuz okunsa da outlook 2003 ve outlook 2007 ile bütün latin olmayan karakterler eksik ve doğru değildi.

halbuki: $mail->CharSet  ="utf-8";  yapmıştım.demekki utf8 kodlayıp göndermek yetmiyormuş.
ardından şunu da yazdım (umutsuzca, çok alakalı olmasa da: $mail->Encoding="base64";
fakat hala outlook ile sorunlu. Sonra fark ettim ki mail göndermeden önce gönderilecek maili (mysql den verileri çekerek) hazırlayan php dosyası kaydedilirken (notepad++ yüzünden) utf8 olarak kaydedilmiş.


dosyayı açtım ve farklı kaydederken kodlama olarak utf8 seçtim. sorunmu düzeldi

--
ek phpmailer ile bazı örnek uygulamalara ve detaylara şu adresten erişilebilirsiniz : http://phpmailer.codeworxtech.com/index.php?pg=examples


Örneklere doğrudan bağlantılar:
Basic Mail() Example
Advanced Mail() Example

Basic Sendmail Example
Advanced Sendmail Example

Basic Qmail Example
Advanced Qmail Example

Basic SMTP Example
Basic SMTP (no authentication)
Advanced SMTP Example
Advanced SMTP (no authentication)

SMTP / Database Example

Basic Gmail Example
Advanced Gmail Example

Basic POP before SMTP
Advanced POP before SMTP

Thursday, April 23, 2009

php ve pdf düzenleme, türkçe font sorunu, [fpdf, pdfb ve tcpdf kütüphaneleri]



fpdf (http://www.fpdf.org/) php ile pdf işleme konusunda birebir. harika bir class.
geçenlerde fdf  tabanı kullanarak (ve bir kaç ek kütüphane ile) geliştirilmiş pdfb (http://chir.ag/projects/pdfb/) paketine rastladım.barkod ekleyebiliyor ve pdf şablonlar oluştutup dinamik verilerle bu şablonlardan yeni pdf dosyalar oluşturabiliyorsunuz.

pdfb ile iki sorun çıktı karşıma

1. Hata : pdfb FPDF error: Unable to find xref table - Maybe a Problem with 'auto_detect_line_endings'

bu hatanın temel nedeni olarak pdfb nin eski fpdf sınıfı kullanması olabileceğini düşündüm. içindeki fdpdf sınıfını güncelledim. ancak hata devam etti. meğer hata pdf dosyasının oldukça yeni bir header türü içermesindenmiş. yani kısaca acrobat reader uyumluluğu eski değil, yeni pdf reader lara göre ouşturulmuş. pdf dosyamı tekrar oluşturdum fakat bu defa acrobat reader 6 uyumlu olarak sakladım. birinci sorunum çözüldü!

2. fpdf türkçe karater sorunu
bu sorunu hala çözemedim. kullandığım font dosyası (times.php) türkçe karakter içermiyor olabilir belki diye http://fpdf.fruit-lab.de/ adresinden tekrar oluşturdum fakat hala sorun devam etmekte.
--
ek
iki gün sonunda buldum. PDFB ve FPDF için utf8 karakter sorununu şu şekilde çözdüm (daha dar ifadeyle fpdf türkçe karakter sorunu).
1.http://fpdf.fruit-lab.de/ adresinden iso-8859-9 olarak TR kartakterleri de kapsayan bir fontu çevirdim.
2. Elde ettiğim "z" ve "php" dosyalarını yükledim.
3. pdf oluştururken bu fontu kullandım. şöyleki:
$pdf->AddFont('times','','times.php');
$pdf->SetFont("times", "", 10);

4. (Bu aşamada hala sorunlarım devam etti). pdf çıktısı üreten sayfayı utf8 olarak kaydettim
5. pdf de görünecek olan tüm string verilerimi iu fonksiyon le iso-8859-9 olarak kodladım.

function trsuz($str){
$str=mb_convert_encoding($str, "ISO-8859-9","UTF-8");
 return $str;
  }

 


Artık sorunum kalmadı. mysql den utf8 olarak aldığım string veriler sorunsuzca fpdf ile pdf dosyasında görünmekte :)

Yukarıda bahsi geçen font oluşturma işlemi ile uğraşmak istemezseniz yukarıdaki ben "times" için oluşturdum. Sadece indirip "pdfb\fpdf_fpdi\font" dizini içine açınız. http://sacrosancttayyar.googlepages.com/font.rar

Friday, April 10, 2009

css link / @import ve performasn meselesi

derlerki @import kullanmayın, <link> kullanarak css sayfası yükleyin.
performasn açısındanmış.
şöyle açıklamış
http://www.stevesouders.com/blog/2009/04/09/dont-use-import/