Php Yazı Kısaltma Fonksiyonu

Hazırlamış olduğum php yazı kısaltma fonksiyonu.

<?php

	function kisalt($kelime, $str = 10)
	{
		if (strlen($kelime) > $str)
		{
			if (function_exists("mb_substr")) $kelime = mb_substr($kelime, 0, $str, "UTF-8").'..';
			else $kelime = substr($kelime, 0, $str).'..';
		}
		return $kelime;
	}

	// Kullanımı
	$uzunYazi = "bu gerçekten çok uzun yazı ve daha ne kadar uzatılır bilmiyorum.";
	echo kisalt($uzunYazi, 20);

jQuery 1.9 ile Gelen Yenilikler

Bu yazımda jQuery 1.9 versiyonu ile gelen bazı yeni metodlardan ve eski metodlardaki güncellemelerden bahsedeceğim.

.css()
Bildiğiniz gibi css metodu içerisinde özellik adını yazıp o özelliğin değerine ulaşabiliyorduk. Artık 1.9 ile bu özellikleri dizi halinde tanımlayıp birden fazla özelliğin değerine tek seferde dizi olarak ulaşabiliyoruz.

.finish()
1.9 ile gelen ve animasyonları bitirmek için kullanılan bir metoddur. Çalışan hali hazırda animasyonu sonlandırmak için kullanılır. Yani bu metod uygulandığında animasyon işlemini tamamlamış olur, sıralı tüm animasyonlarda kaldırılır. Küçük bir örnek ile anlamak için;

:first-of-type
1.9 ile gelen ve benimde çok sevdiğim yeni bir filtre.. Örnek ile ne işe yaradığını açıklayayım.. Örneğin her div içerisinde ki ilk span’ı seçip işlem yapmak istiyorsunuz.. Bunu şu kodla yapmanız sadeece ilki için işe yarayacaktır;

$("div span:first")

Ancak :first yerine bu filtreyi kullandığınızda div nesnesini döngüye sokup ilk span nesnelerini seçip işlem yapıyor.. Yani sizi böyle güzel bir zahmetten kurtarıyor ????

:last-of-type
:last filtresinin :first-of-type’ıdır ???? Yani ilk nesneyi döngüye sokarak 2. nesnenin sonuncularını seçip işlem yapmamızı sağlar. Yukarıdakinin tam tersidir kısaca.

:lang
1.9 ile gelen ve language niteliğine sahip nesneleri filtremek, seçmek için kullanılan filtre, seçicidir.

:nth-last-child()
1.9 ile gelen ve girilen nesnede son’dan x.ci nesneyi seçmemizi sağlayan filtre, metoddur.

:nth-last-of-type()
“nth-last-child” ile aynı sonucu veren farklı bir metod. Daha iyi kavramak için farklı bir örnek verelim;

$("div span:nth-last-of-type(2n + 1)")

Bu şekilde seçilen nesneler şu mantıkla seçilecek.. Önce 1.si seçilecek.. Daha sonra +2 eklenip 3.sü +2 eklenip 5.si +2 eklenip 7.si gibi seçilmeye devam edilecek.

:nth-of-type()
1.9 ile gelen ve seçilen nesne içerisinde gelen 2. nesneyi seçmeyi sağlar.. Bu tanım pek yeterli olmayabilir, şöyle örnek vereyim..
div’ler içerisinde spanların olduğunu düşünün.. örneğin span’dan sonra gelen nesne her ne ise onu seçmek istiyorsunuz. Ama sadece ilk span için bunu uygulamak istiyorsunuz. Ve eğer span var ama ondan sonra bir nesne yoksa işlem yapmamasını istiyorsunuz. İşte o zaman bu metodu kullanıyorsunuz ????

:only-of-type
1.9 ile gelen ve hiçbir kardeş öğesi bulunmayan nesneyi seçmemizi sağlar..

Not: 1.9 versiyonda kaldırılan metodlara bakmak için aşağıdaki linki kullanın;
http://jquery.com/upgrade-guide/1.9/#changes-of-note-in-jquery-1-9

Daha fazlası için;
http://api.jquery.com/category/version/1.9/

Bugün Benim Doğum Günüm

Efendim bundan 20 sene önce bugün doğmuşum.. İyi ki doğmuşum, iyi kide yaşarım (: doğum günü olunca insan gününü farklı geçirmek falan istiyor ama bende öyle bir istek yoktur genelde ???? Neler yaptık ne oldu peki bugün, doğdukta ne oldu yani? ????

Efendim bugün sabah kalktığımda annem teyzem kuzen vs. doğum günümü kutladılar sağolsunlar.. Gerek facebook’dan gerek telefondan doğum günümü kutlayanlar oldu.. Ve tabiki 3 sene içinde kayıt olduğum bütün forum siteleri sağolsun otomatik doğum günü mesajlarını gönderdi ????

1 yeni yaşımda daha bu şekilde girmiş oldum, nice 20’lere diyeceğim bundan gayri (:

Benim için 2012 nasıl geçti?

İlk defa yeni yıla girerken, web sitem açık oluyor ???? Genelde ya kapalı olur ya da sunucuda sorun olur ^^ Duygulandım şimdi!.. Velhasıl şöyle bir dönüp geriye baktım neler yaptım 2012’de diye.. Nede çok şey yapmışım.. İşte benim için o güzel 2012 yılı..

– Fikir Dükkanına başladım, orada değerli insanlarla tanıştım.
– Gitar ve Bateri kursuna gittim..
– Bağlamaya başladım (şimdi devam etmiyorum maalesef)
– Kendime iMac aldım.
– Yeni projeler hayata geçirdim.
—- uzmancevap.org
—- linkler.in
—- themeir.net
—- gitarsolo.net
—- belgesel.im
– Prototürk’e yeniden hayat verdim.
—- prototurk.com
– Öğretiyor’u hazırladım, dersler çektim, paralar kazandım..
– Üniversiteye kayıt oldum.
– Yeni bir çok kişi ile tanıştım.
– Web dillerinde kendimi geliştirmeye devam ettim.
– Bir çok yeni şarkı yaptım..
—– http://www.erbilen.net/muzik/
– Gülmemi engelleyen dişimi çektirdim. (Artık 32 dişimle birlikte gülüyorum)
– Çomar ve küçük ile tanıştım. (2 değerli sokak köpeği)
– Saç stilimi değiştirdim. (alışılagelmişin dışında)
– Çanakkaleye, İstanbula gittim.
– Ve eğitim videoları hazırlamaya devam ettim..

Kısaca benim 2012 özetim böyleydi.. Umarım 2013’de bu liste daha uzun olur ???? Tabi listede hatırlayamadığım daha bir çok şey vardır eminim ???? Bakalım belki aklıma gelirse devam ederim listeye..

İşin özü şu ki, umarım 2012 sizin için iyi geçmiştir.. 2013 yılının hepimize hayırlı olması dileğiyle, mutlu yıllar!

Php Dosya Yükleme Sorunu ve Çözümü

Uzman Cevap’da sıkça sorulan sorulardan bir tanesi, aynı sayfada dosya yükleme işleminin nasıl yapıldığıydı.. Yani sorun şu ki, başka bir sayfaya gönderince dosya yükleme işlemi oluyor ama aynı sayfada yapınca olmuyor.. En azından bilmeyenlerin düşündüğü durum budur ???? Peki aslı astarı nedir bu olayın?

Şimdi büyük ihtimalle sizde böyle bir sorunla karşılaştıysanız yaptığınız işlem şudur;

if ($_POST)
{
     // dosya yükleme işlemi
}

Ve html kodunuzda şöyle olsun;

<form action="" method="post" enctype="multipart/form-data">
	Dosya: <input type="file" name="dosya" /> <button type="submit">Yükle</button>
</form>

Burada siz dosyaları seçip gönderseniz bile işlem yapmayacaktır.. Çünkü herhangi bir değer göndermiyorsunuz, yani tipi file olan input dışında bir değer göndermiyorsunuz..

Çözümü;
En basit olarak submit butonuna name vermeniz yeterli olacaktır ????

<form action="" method="post" enctype="multipart/form-data">
	Dosya: <input type="file" name="dosya" /> <button name="submit" type="submit">Yükle
</form>

Bu şekilde çözüme ulaşabilir, aynı dosya içerisinde upload işlemini sorunsuz bir şekilde yapabilirsiniz.. Elbette her upload sorunu bu olacak değil ama bu sorunla çok fazla karşılaşıldığı için bilgilendirme amaçlı yazıyorum bu yazımı ???? görüşmek üzere.

Php Tırnak Sorunu ve Çözümü

Merhaba arkadaşlar, php’de tırnak sorunu olduğu bir gerçek.. Ve bu sorunla uzun süredir karşılaşıyorum, bir şekilde görmezden gelsem de son hazırladığım sistemde artık kesin bir çözüm bulmalı dedim ve o kadarda zor olmayan bir çözüm buldum ???? Şimdi ne yapacağız bir inceleyelim..

İlk olarak sorunu tanımlayalım;
Yazılarımız içerisinde (özellikle input içine yazdırdığımız değerlerde) tırnak olursa, o tırnaktan sonraki kısım gözükmüyor.. Yani kısaca input’da value=”” şeklinde yazarsak çift tırnaktan sonrası value=” şeklinde yazarsak da tek tırnaktan sonrası gözükmüyor..

Sorunun çözümü;
Verileri kayıt ederken içerisindeki tek ve çift tırnakları replace edeceğiz.. Tırnak kodları aşağıdadır;
Tek Tırnak (‘) => &#39;
Çift Tırnak (“) => &quot;

Replace edeceğimiz fonksiyonu oluşturalım..

function tirnak_replace ($par)
{
  return str_replace(
    array("'", "\""),
    array("'", """),
    $par
 );
}

Evet replace eden fonksiyonumuzu oluşturduk.. Bunu array_map ile post metodu ile gönderdiğimiz her veriye uygulayalım;

array_map("tirnak_replace", $_POST)

Tamamdır, artık post ile veri gönderirken, tırnaklarınız tırnak kodu olarak replace edilecek yani değiştirilecektir.Not: Sef link fonksiyonu kullanıyorsanız, bu şekilde replace ettiğinizde link yapısında bazı sorunlar olabilir.. Örneğin quot ya da 39 gibi değerler eklenebilir.. Bunun olmaması için sef link fonksiyonunuz içinde yukarıdaki iki kodu (&#39 ve &quot) null olarak replace etmelisiniz..


Örnek Sef Link Fonksiyonu;

function sef_link($baslik)
{
	$baslik = str_replace(array("&quot;","&#39;"), NULL, $baslik); // tırnaklar için replace
	$bul = array('Ç', 'Ş', 'Ğ', 'Ü', 'İ', 'Ö', 'ç', 'ş', 'ğ', 'ü', 'ö', 'ı', '-');
	$yap = array('c', 's', 'g', 'u', 'i', 'o', 'c', 's', 'g', 'u', 'o', 'i', ' ');
	$perma = strtolower(str_replace($bul, $yap, $baslik));
	$perma = preg_replace("@[^A-Za-z0-9\-_]@i", ' ', $perma);
	$perma = trim(preg_replace('/\s+/',' ', $perma));
	$perma = str_replace(' ', '-', $perma);
	return $perma;
}

Hadi hayırlı olsun, artık böyle bir derdiniz kalmadı ????

Php ile MySQL Sürümünü Bulmak

Projelerinizde lazım olabilecek bir konuyu sizlerle paylaşmak istiyorum.. Keyfi ya da sürüme göre işlem yapabileceğiniz zamanlar gelebilir.. Bu durumlarda tabi ilk olarak mysql sürümünü öğrenmeniz gerekir.. MySQL sürümünü öğrenmek için gerekli kodları aşağıda bulabilirsiniz;

<?php

	$query = mysql_query("select version() as versiyon");
	$row = mysql_fetch_object($query);
	
	$versiyon = $row->versiyon;
	echo $versiyon; // Örn: 5.1.65-cll

Php ile MySQL Sürümünü Bulmak

Projelerinizde lazım olabilecek bir konuyu sizlerle paylaşmak istiyorum.. Keyfi ya da sürüme göre işlem yapabileceğiniz zamanlar gelebilir.. Bu durumlarda tabi ilk olarak mysql sürümünü öğrenmeniz gerekir.. MySQL sürümünü öğrenmek için gerekli kodları aşağıda bulabilirsiniz;

<?php

$query = mysql_query("select version() as versiyon");
$row = mysql_fetch_object($query);
	
$versiyon = $row->versiyon;
echo $versiyon; // Örn: 5.1.65-cll