bildirgec.org

Site arşivi: kodaman

JSON Tekniği ve Javascript ile ilişkisi..

admin | 02 January 2009 10:15

Programlama ile ilgileniyorsanız, hele de az çok web teknolojilerine yakınlığınız varsa, javascript ile neredeyse özdeşleşmiş bir isim illaki gözünüze çarpmıştır. Nedir o isim? “JSON”! Çoğu kaynakta json isimli bir programcının bu tekniğe ismini verdiği söylenmektedir ama sanırım bir ismin öyküsüne bu kadar takılmamakta fayda var. En azından bu portalın amaçlarıyla bağdaşmayan bir yön.. Ama yeri gelmişken şunu hemen eklemeliyim; JSON bir kodlama tekniğidir ve bir çok bilgisayar programlama dilinde uygulanabilmektedir. Bu dillerden birisi de javascript’tir. Bize de şimdi bu dille JSON tekniğini açıklamak düşüyor. Gelin öncelikle bir kısa kod örneği verip üzerinde konuşalım..

PHP İle Zip Dosyalarını Açmak

admin | 01 January 2009 09:50

Bazı web sitelerinin siz bir ZIP dosyası gönderdiğinizde ilgili dosyayı açıp içindeki dosyaları sitenin tercihlerine göre işlediğine şahit olmuşunuzdur. NETTUTS’ta yayımlanan bu makale ile sizlere PHP kullanarak Zip dosyalarının nasıl açılabileceğini açıklamaya çalışacağım.

Yapmamız Gerekenler

  • Kullanıcıların zip dosyası seçmelerini sağlayacak basit bir upload formu oluştur
  • Kullanıcının zip dosyası seçtiğinden emin ol ve ardından onu tekil bir dosya olarak kaydet.
  • Zip’in içindeki dosyaları bir klasöre çıkar
  • Zip dosyasını sil ve içeriğini göndericiye göster.

Adım 1: Upload Formunu Oluşturmak

Curl ile Birden Fazla Kaynaktan Veri Çekmek

admin | 31 December 2008 19:15

Curl ile veri çekmek daha önce bu yazıda ele alınmıştı. Tek bir yerden veri çekmek için bu yöntem uygun olsa da eğer birden fazla yerden veri çekmek isityorsak uygulamamızın hızlı çalışması için curl_multi fonksiyonlarını kullanmamız gerek. Bu şekilde eğer bir veri çekmek 2 sn sürüyorsa ve biz 6 yerden veri çekiyorsak toplam süre 12 sn değil 2 sn olacaktır.

Örnek fonksiyon şöyle yazılabilir:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
function coklu_istek($veri)
{
$curlle = array();
$sonuc = array();
$yer_tutucu = curl_multi_init();
foreach ($veri as $id => $d) {
$curlle[$id] = curl_init();
$url = is_array($d) ? $d['url'] : $d;
curl_setopt($curlle[$id], CURLOPT_URL, $url);
curl_setopt($curlle[$id], CURLOPT_HEADER, 0);
curl_setopt($curlle[$id], CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlle[$id], CURLOPT_USERAGENT,
"Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4");
curl_setopt($curlle[$id], CURLOPT_ENCODING, "");
curl_setopt($curlle[$id], CURLOPT_AUTOREFERER, 1);
curl_setopt($curlle[$id], CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curlle[$id], CURLOPT_TIMEOUT, 10);
curl_setopt($curlle[$id], CURLOPT_MAXREDIRS, 2);
curl_multi_add_handle($yer_tutucu, $curlle[$id]);
}
$aktif= null;
do {
curl_multi_exec($yer_tutucu, $aktif);
} while ($aktif> 0);
foreach ($curlle as $id => $c) {
$sonuc[$id] = curl_multi_getcontent($c);
curl_multi_remove_handle($yer_tutucu, $c);
}
curl_multi_close($yer_tutucu);
return $sonuc;
}

ASP ile gruplandırma algoritmaları üzerine

admin | 31 December 2008 19:00

Bildiğiniz gibi gruplandırma denilince akla ilk sql sentaksındaki “group by” deyimi gelir. (malum bisküvinin reklamı gibi oldu:)) Bu deyim ile örneğin iki defa “adana” terimine rastlansa bile sadece 1 defa “adana” terimi bize sunuluyor. Ama veriler her zaman veritabanında olmayabiliyor. İşte o zaman sql haricinde bize bir çeşit gruplandırma fonksiyonu lazım olacaktır. Şimdi basit bir veri kümesi sunup üzerinde konuşalım.

1
2
3
4
5
6
7
8
9
10
*ankara
adana
siirt
kastamonu
**ordu
sivas
**ordu
muğla
**ordu
*ankara

PHP’de Güvenlik ve Oturum Yönetimi

admin | 28 December 2008 16:15

Kullanıcı içerikli siteler yapmak istiyorsak bu kullanıcılara doğru bir şekilde işlemlerini yapabilmeleri için oturum izinleri vermemiz, bu oturumu yönetmemiz ve bunu güvenli bir şekilde yapmamız gerekmektedir.

Kullanıcının çevrimiçi olup olmadığını ve bu durumuna göre sayfalara erişip erişemeyeceğinin kontrolü için gerekli olan oturum yönetimini yapabilmek için çeşitli yollar bulunmaktadır.

Bu yazıda bahsedeceğim yollar PHP için düşünülmüş olup diğer internet programlama dilleri için de kullanılabilir. Benzer yaklaşımlarla, server olarak kullanılan bilgisayarlarda da hizmet alan kullanıcılar için sunucumuz bir oturum yönetimi yapmalıdır.

curl ile data cekme fonksiyonu

admin | 25 December 2008 14:37

curl ile data cekme fonksiyonu

asagidaki kod su sekilde calisiyor.

url deki adrese git ve
title’i getir ve yazdır.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# data alinacak adres
$url = 'http://www.kodaman.org';
$web_content = get_data($url);
# datayi nereden alacagi
$title = get_match('/<title>(.*)<\/title>/isU',$web_content);
$content.= '<h2>Title</h2><p>'.$title.'</p>';
echo $content;
function get_match($regex,$content)
{
preg_match($regex,$content,$matches);
return $matches[1];
}
# url'deki datayi getirecek olan curl fonksiyonu
function get_data($url)
{
$ch = curl_init();
$timeout = 5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}

javascript ile Sinema Tarzında Efekt Yapalım

admin | 24 December 2008 19:15

Bazı image gallery’lerde veya lightBox diye piyasaya sürülen javascript aparatlarında sık sık rastladığımız bir efekt vardır. Hani şu yavaşça opaklığı artın resim ya tamamen kaybolur ve hemen ardından bir sonraki resim aynı yavaşlıkla opaklık arttırarak (0’dan başlayıp) sahneye gelir yada ilk resim kaybolurken aynı anda altında duran resim git gide belirginleşir vs vs.. Çeşitli yöntemler mevcut ama nasıl yapılacağını hiç düşündünüz mü? Hazır library’lerde çok basit bir şekilde ve türlü olaylar (event) karşısında cevap verebilecek şekilde bu özellik verilebiliyor. Ama nedir bu hadisenin mantığı? Derhal aktaralım efem!..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var kontur = 0;
var timeOut;
function opakOut(yer,hiz){
if(kontur>0){
hiz = hiz * 1000
var yer = document.getElementById(yer);
mozOp = kontur * 0.01;
yer.style.opacity = mozOp;
yer.style.filter = "alpha(opacity="+kontur+")";
kontur--
timeOut = setTimeout("opakOut("+yer+","+hiz+")",hiz);}
else{
clearTimeout(timeOut);}
}

GD ile thumbnail oluşturma

admin | 24 December 2008 19:07

GD kütüphanesi kullanarak çok basit birşekilde Thumbnail oluşturma fonksiyonu.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
function picture($off_site,$savethumb,$gen) {
$fp = fopen($off_site, 'rb') or die($off_site.' konumunda dosya açılamadı.');
$buf = '';
while(!feof($fp))
{
$buf .= fgets($fp, 4096);
}
fclose($fp);
$data = $buf;
//yeni boyutlandırma
$size = $gen;
$src = imagecreatefromstring($data);
$width = imagesx($src);
$height = imagesy($src);
$aspect_ratio = $width/$height;
//ölçeklendirme
if($width <= $size)
{
$new_w = $width;
$new_h = $height;
}else{
$new_w = $size;
$new_h = abs($new_w / $aspect_ratio);
}
$img = imagecreatetruecolor($new_w,$new_h);
//çıktı
imagecopyresampled($img,$src,0,0,0,0,$new_w,$new_h,$width,$height);
// header
//if(empty($savethumb)) header('Content-Type: image/jpeg');
// ya da kaydedin
imagejpeg($img, $savethumb, 90);
imagedestroy($img);
}

PHP ile Basit Bir İmla Denetimi

admin | 24 December 2008 19:00

Üyelerden gelen iletiler hezaman forumların, blogların, ziyaretçi defterlerinin başını ağrıtmaktadırlar… Özellikle türkçeye en ufak bir saygı gösterilmemesi ve imla işaretlerinin yanlış kullanılması az-çok edebiyat ile uğraşmış PHP coderlerini aşağıdaki gibi bir fonksiyon yazmaya götürebilir….

Burada fonksiyon olarak verilen işlemleri, yöneticisi olduğumuz forumlarda alıntı yazıları düzenlemek için biteviye tekrarlıyorduk… Bu fonksiyon da oradan aklımıza düşmüştü…

PHP ile Basit Bir İmla Denetim Fonksiyonu… İhtiyaç oldukça yazmakta yarar var.

MySQL tablolarında zengin içerik arama (Full-Text)

admin | 23 December 2008 12:43

PHP-MySQL kullanarak arama modülü yazılırken kullanılabilecek ve yararlı bir özellik
MySQL de arama sorguları yazarken genel olarak LIKE komutunu kullanırız. LIKE tan farklı olarak full-text indekslerini de kullanabilriz. MySQL full-text indeksleri arama sorguları için LIKE fonksiyonundan daha etkili ve kullanışlıdır. Ayrıca sonuçları rahatça sıraya koymamızı sağlaması da önemli bir artıdır. full-text arama tablolardaki VAR,TEXT ve VARCHAR alanlarını full-text indeks olarak atayıp MATCH fonksiyonunu kullanarak bunlarda arama yapmak olarak özetlenebilir. Alanları full-text şöyle yapabiliriz.