Php

Php’de excel dosyası oluşturmak

Okunma Sayısı : 97

Php’ de Excel dosyası oluşturmak için piyasada bir dolu kod mevcut ve öle kodlarki artık bir çoğu karmaşık yapıda ve bazıları hiçbir işe yaradığı yok. Yani hemen hemen hepsinde bazı eksiklikler mevcut. En temel şekilde çoğunda türkçe karakter sorunu yaşanmaktadır. Bu yazımda sizlere en kolay ve basit şekilde php’de excel dosyası oluşturmayı anlatacağım.

Excel dosyası oluşturmak için bizim 4 tane fonksiyonumuz mevcut. Bunlar ;

function xlsBOF() {
echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);
return;
}

function xlsEOF() {
echo pack("ss", 0x0A, 0x00);
return;
}

function xlsWriteNumber($Row, $Col, $Value) {
echo pack("sssss", 0x203, 14, $Row, $Col, 0x0);
echo pack("d", $Value);
return;
}

function xlsWriteLabel($Row, $Col, $Value ) {
$L = strlen($Value);
echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);
echo $Value;
return;
}

xlsBOF() fonksiyonu ile excel dosyasının şablonunu oluşturmak için kullanılır.

xlsEOF() fonksiyonu ise excel dosyasının şemasını kapatmamıza yarar ve excel dosyasını oluşturur.

xlsWriteNumber($Row, $Col, $Value) fonksiyonu ise eğer hücreye gireceğimiz veri sayı ise bu fonksiyonu kullanacağız. Fonksiyonun alacağı değerleri sırasıyla söyleceyek olursak eğer ilki satır numarası, ikincisi sütun ve ücüncüsü ise o hücreye gireceğimiz değerdir.

xlsWriteLabel($Row, $Col, $Value) fonksiyonu ise eğer hücreye gireceğimiz veri sadece sayısal verilerden oluşmuyor yani alfanumeric ise bu fonksiyonu kullanacağız. Fonksiyonun alacağı değerleri sırasıyla söyleceyek olursak eğer ilki satır numarası, ikincisi sütun ve ücüncüsü ise o hücreye gireceğimiz değerdir.

// Send Header
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");;
header("Content-Disposition: attachment;filename=deneme.xls ");
header("Content-Transfer-Encoding: binary ");

Yukarıdaki kodlar sayesinde excel.php dosyamızın bir excel dosyası olduğunu söylemekteyiz. Burada değiştirebileceğiniz tek yer var;
header(“Content-Disposition: attachment;filename=deneme.xls “);
çıktı olarak alınmak istenen dosya adını burada değiştirebilirsiniz. Ben deneme.xls yaptım siz istediğiniz ismi verebilirsiniz.

// XLS Data Cell

xlsBOF();
xlsWriteLabel(0,0,"NO");
xlsWriteLabel(0,1,"Ad Alani");
xlsWriteLabel(0,2,"Basvuru Tarihi");

$xlsRow = 1;

for($i = 1 ; $i <= 50 ; $i++)
{
xlsWriteNumber($xlsRow, 0, $i);
xlsWriteLabel($xlsRow, 1, "deneme". $i);
xlsWriteLabel($xlsRow, 2, $today);
$xlsRow++;
}

xlsEOF();
exit();

Yukarıdaki kodda ise sırasıyla açıklamam gerekirse;

* xlsBOF() ile Excel doyasının şablonunu oluşturdum.

* xlsWriteLabel(0,0,”NO”) ile sıfırncı satırın sıfırıncı sütununa NO değerini girdim.

ve devam ederseniz eğer ilgili hücrelere değerlerini ya sayı olarak yada sayı olmayan (alfanumeric) değerlerini girdim.

Son olarakda xlsEOF(); yazarak excel dosyamın şablonunu bitirdiğimi söyledim ve böylece excel dosyamı oluşturdum.

Bir çok arkadaşımıza bu yazımın faydalı olacağını düşünüyorum.

Yukarıda anlatmış olduğum konunun ilgili örneğini indirmek için tıklayın.

Kaynak

Php’de Passing By Reference ve Returning References

Okunma Sayısı : 198

Bugün size karışık gibi görünen fakat oldukça basit bir konuyu yani passing by reference (gönderimle aktarım) ve returning references (gönderimle döndürme) anlatmaya çalışacağım. Öncelikle references ne olduğuna bakalım.

<?php
$a = 1;
$b = 2;
$a =& $b;
echo $a; //Ekrana 2 yazar
$a = 10;
echo $b; //Ekrana 10 yazar
$b = 20;
echo $a; //Ekrana 20 yazar
unset($a);
echo $b; //Ekrana 20 yazar
?>

Yukarıdaki kodu incelediğinizde fark edeceksiniz ki $a ve $b değişkenleri sanki birbirlerinin aynısı gibi davranıyorlar. Yani $a artarsa $b de aynı oranda artıyor veya $b azalırsa $a da aynı oranda azalıyor ve aynı değere sahip oluyor iki değişkende. Eğer daha önce references kullanmadıysanız fark edeceksiniz ki $a değişkenin $b değişkenine eşitlerken ve(&) karakterini kullanmışız. Ve karakteri ile $a değişkeninin $b değişkenin aynısı olmasını sağladık yani bellekte aynı bölgeyi iki farklı değişken ile işgal etmiş oluyoruz. Ama unset ile $a değişkenini yok ettiğimizde $b değişkenine birşey olmayacaktır. References değişkenlerde kullanımı bu şekilde. Şimdi fonksiyonlardaki argüman atamalarında yani passing references da durum nasıl onu inceleyelim.

<?php
function foo(&$b)
{
    $b++;
}
$a = 1;
foo($a);
echo $a; //Ekrana 2 basar.
?>

Yukarıdaki argüman atamasında ise $b’nin önüne ve(&) karakteri konuluyor bu sayede $b değişkenin ile $a değişkeni tamamen eşitleniyor. Yani yukarıda yaptığımız passing by variable işlemini bir benzeri yapılış biçimi farklı olsa da yaptıkları iş birbirinin aynısı $b değişkeni artarsa $a değişkeni de aynı oranda artacaktır. Ve son olarak returning by references inceleyelim.

class foo {
    public $deger = 99;

    public function &getDeger() {
        return $this->deger;
    }
}

$obj = new foo;
$a = &$obj->getDeger();//$a değişkenine returning references uyguladık.
$obj->deger = 100;
echo $a;//Ekrana 100 basar

Burada ise $a değişkenini getDeger fonksiyonundan dönen değer ile eşitliyoruz yani aynısı yapıyoruz. Bu sayede nesne içinden veya dışından $deger değişkeninde herhangi bir değişiklik yaptığımızda aynı değer $a değişkenimizede yansıyacaktır. Bu sayede $deger değişkeninde ne olduğunu öğrenmek için nesne üzerinden çağırma yapmamıza gerek kalmıyor $deger değişkenindeki tüm veriyi $a değişkeni üzerinden kolayca görebilmekteyiz.

Kaynak

Php güvenlik araçları

Okunma Sayısı : 117

php, open source olmasının yanısıra çok geniş bir yapıya sahip olması bazı projelerde güvenlik açıklarına sebep olabilmektedir. bu açıkların genel anlamda bir kısmını biliyoruz bilmediklerimiz içinse, bu amaca hizmet eden araçlar işimize yarayabilmektedir. işte onlardan birkaçı;

PhpSecInfo

\

 

php güvenliği için çok yararlı olan bu araç detaylı raporlar sunmakta. Eğer hatalar var ise bu hataların nasıl düzeltilebileceğine dair bilgiler de veriyor.
 

\
Devamı ve kaynak için : rhymes – bildirgec.org

CURL kullanmadan Feedburner abone sayacı

Okunma Sayısı : 54

Feedburner abone sayınıcı sitenizde yayınlamak için kullanabileceğiniz basit bir örnek.

Öncelikle Feedburner hesabınızdan aşağıdaki resimde gösterildiği gibi “awareness api” özelliğini aktif etmeniz gerekiyor.

bu özelliği aktif ettikten sonra kısa bir fonksiyonla abone sayınızı alabilir ve ekrana yazdırabilirsiniz:

function rssCount(){
	$feedId = 'feedburner_id';
	$contents = file_get_contents("https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=$feedId");
	$pattern= "/(?<=circulation=['|\"])[^'|\"]*?(?=['|\"])/i";
	preg_match($pattern, $contents, $thePath);
	return $thePath[0];
}

echo rssCount();

Kaynak(Source)

Çevirimiçi kod düzenleyicileri

Okunma Sayısı : 91

Bir programcı olarak çoğu zaman dışarıda olduğum zamanlar kod düzenlemek durumda kaldığım çok oluyor. Bu tür durumlarda en büyük yardımcım notepad olmaktadır. ama komutların yazım şekilleri ve parametleri açısından gelişmiş düzenleyiciler kullanmak herzaman kolaylık sağlamaktadır. işte olmadık yerde düzenlemeler yapabilmeniz için çevirimiçi düzenleciler…

Amy Editor
amy, 2007 yılında Petr Krontorad tarafından oluşturulmuştur. Bu gelişmiş düzenleyici görünüm itibariyle mac tarzındadır. Satır numaraları, yazım denetimi gibi özelliklerinin yanında daha bir çok kullanışlı özelliğe sahiptir. Ayrıca amy 20 tane dili desteklemektedir.

Devamı >

Formlarınız için güvenlik kodu

Okunma Sayısı : 77

Web sitelerinin en büyük problemlerinden biri olan spamı engellemenin en kolay ve basit çözümü olan hazır güvenlik kodu(captcha) scriptlerini formlarınıza eklemeniz için örnekler.

Mollom Captcha Script

Desfensio Captcha Script

Fancy Captcha

Re-Captcha

Devamı >

PHP kılavuzları

Okunma Sayısı : 49

PHP Cheat Sheet

Devamı >

Php ve jQuery ile google analytics sayacı

Okunma Sayısı : 101

Eğerki sitenizin istatistiği için Google Analytics kullanıyorsanız, sayfa gösterim ve ziyaretçi sayılarınızı php ve jquery ile sitenizde gösterebilirsiniz.

Kaynak(source)

PHP ve jQuery ile yapılmış yapışkan notlar

Okunma Sayısı : 55

PHP ve jQuery kullanarak yapılmış bir yapışkan notlar örneği. Örnek geliştirilerek farklı projelerde kullanılabilir. Devamı >

Ajax & PHP Webmail İstemcileri

Okunma Sayısı : 88

Roundcube
Devamı >