PHP serialize() ve unserialize() Fonksiyonları

PHP’de hiç kompleks bir değişkeni veritabanında ya da dosyalarda saklamak istediniz mi? Örneğin tipi array olan bir değişkeni veritabanında saklamak istiyoruz. İşte bunu serialize() fonksiyonu ile yapmamız mümkün.

serialize()

Şimdi kompleks bir dizimizi saklayacak hale getirelim.

$arr = [
	'Tayfun Erbilen',
	'site' => 'http://erbilen.net',
	1993,
	[
		'ad' => 'Tayfun',
		'soyad' => 'Erbilen'
	]
];

$data = serialize($arr);
echo $data;

/*
a:4:{i:0;s:14:"Tayfun Erbilen";s:4:"site";s:18:"http://erbilen.net";i:1;i:1993;i:2;a:2:{s:2:"ad";s:6:"Tayfun";s:5:"soyad";s:7:"Erbilen";}}
*/

unserialize()

Serialize ettiğimiz datayı tekrar eski orijinal haline getirmek istersekte şöyle yapacağız;

$arr = [
 'Tayfun Erbilen',
 'site' => 'http://erbilen.net',
 1993,
 [
 'ad' => 'Tayfun',
 'soyad' => 'Erbilen'
 ]
];

$data = serialize($arr);
echo $data;

/*
a:4:{i:0;s:14:"Tayfun Erbilen";s:4:"site";s:18:"http://erbilen.net";i:1;i:1993;i:2;a:2:{s:2:"ad";s:6:"Tayfun";s:5:"soyad";s:7:"Erbilen";}}
*/

$array = unserialize($data);
print_r($array);

/*
(
    [0] => Tayfun Erbilen
    [site] => http://erbilen.net
    [1] => 1993
    [2] => Array
         (
             [ad] => Tayfun
             [soyad] => Erbilen
         )
)
*/

İşte bu şekilde kompleks verilerinizi veritabanında saklayabilirsiniz.

Bu işlemi ayrıca json_encode() ve json_decode() fonksiyonları ilede yapabilirsiniz. Merak edenler buraya tıklayıp inceleyebilir.

PHP glob() Fonksiyonu

PHP’de sevdiğim ve yararlandığım bir fonksiyon var. Bu fonksiyonun adı glob() 

Fonksiyon ne işe yarıyor?

Dizin içerisinde eşleşen dosyaları bulmamızı sağlıyor. Örneğin kolayca tüm php dosyalarını bulabiliriz. Şöyle ki;

// Dizindeki tüm php dosyalarını bul
$files = glob('*.php');

print_r($files);
/*
Array
(
    [0] => _index.php
    [1] => ip.php
)
*/

Ya da bir başka örnek, birden fazla uzantılı dosyaları şu şekilde bulabiliriz;

// Dizindeki tüm php ve css dosyalarını bul
$files = glob('*.{php,css}', GLOB_BRACE);

print_r($files);

/*
Array
(
    [0] => _index.php
    [1] => ip.php
    [2] => bitnami.css
    [3] => style.css
)
*/

İsterseniz bulunduğunuz dizini değil, kendiniz dizin ayarlayarakta listeleme yapabilirsiniz. Örneğin;

// animalpedia dizinindeki tüm html dosyalarını bul
$files = glob('animalpedia/*.html');

print_r($files);

/*
Array
(
    [0] => animalpedia/alt.html
    [1] => animalpedia/index2.html
)
*/

Tam dosya adreslerini almak isterseniz array_map() fonksiyonu ile realpath() uygulamak yeterli olacaktır. Şöyle ki;

// animalpedia dizinindeki tüm html dosyalarını bul
$files = glob('animalpedia/*.html');

$files = array_map('realpath', $files);

print_r($files);
/*
Array
(
    [0] => /Applications/XAMPP/xamppfiles/htdocs/animalpedia/alt.html
    [1] => /Applications/XAMPP/xamppfiles/htdocs/animalpedia/index2.html
)
*/

İşte bu kadar ????

Sonuç olarak bu fonksiyonu kullanacağınız bir çok yer olacağına eminim. Bilmiyorsanız öğrendiniz, biliyorsanız pekiştirdiniz. Bir başka fonksiyon anlatımında görüşürüz ^^

Centos Sunucu üzerinde Apache, PHP, Mysql ve phpMyAdmin Kurulumu ve Cloudflare Ayarları

Merhaba arkadaşlar, ben sunucu için digitalocean’ı kullanıyorum. Bu yüzden videoda digitalocean’dan ilk olarak centos sunucu alarak başlıyorum. Daha sonra sunucuma ssh ile bağlanıyorum ve aşağıdaki adımlar ile gerekli pakelerimi kuruyorum…

Apache Kurulumu

İlk olarak root olarak bağlanmadıysanız;

sudo su

diyerek root olun sunucuda. Şimdi apache kurulumu için şu satırı yazın;

yum install httpd

Gelen mesajlara y deyip enter’layın. Bu hepsi için geçerlidir ????

Kurulum tamamlanınca apache’yi başlatalım;

systemctl start httpd.service

Birde son olarak şu ayarı yapalım;

systemctl enable httpd.service

Not: Eğer vultr’ye kuruyorsanız 80 portunu açın.

/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/etc/rc.d/init.d/iptables save

Artık IP adresinizi girip test apache sayfasını görebilirsiniz ????

http://SUNUCU_IP_ADRESİNİZ

PHP Kurulumu

Sunucuya php kurmak çok basit. Şu satırı çalıştırın;

yum install php php-mysql

Kurulum bittikten sonra apache’yi yeniden başlatalım;

systemctl restart httpd.service

Eğer herhangi bir php modülü yüklemek isterseniz önce modülleri şu satırı çalıştırıp arayın;

yum search php-

Örneğin php-fpm modülünü yükleyeceksiniz. Şu şekilde yükleyebilirsiniz;

yum install php-fpm

Şimdi artık php’yi kurduğumuza göre, dosyalarımızı hangi klasöre atacağımızı görelim;

/var/www/html

Bu klasöre atıyoruz dosyaları. Hemen bir tane test index.php oluşturalım. Ama ondan önce nano kurulumu yapalım. Nano dosyaları konsol üzerinden editlemek için kullandığımız bir araç. Şu satırı çalıştıralım;

yum install nano

Kurulumu yaptıktan sonra önce ilgili klasöre şu satırla girelim;

cd /var/www/html

Ve bir index.php oluşturalım;

touch index.php

Şimdi onu düzenlemek için açalım;

nano index.php

Ekrana boş sayfa gelecek bu sayfa içine şu kodu yazalım;

<?php phpinfo(); ?>

Ve ctrl + x yapalım y deyip enter’layalım kaydedilmiş olacak. Şimdi tekrar ip adresinize girdiğinizde php info’yu görebilirsiniz..

MySQL Kurulumu

Sıra geldi mysql’i kurmaya.. Mysql’i önce indirmemiz gerek. Şu adrese girin;
https://dev.mysql.com/downloads/repo/yum/
Buradan son sürümü bulun. Örn: mysql57-community-release-el7-11.noarch.rpm

Şimdi bunu sunucumuza şu şekilde indirelim;

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

doğrulamak içi şu işlemi yapalım;

md5sum mysql57-community-release-el7-11.noarch.rpm

Dönen md5 değerini sitedeki ile karşılaştırabilirsiniz.
Şimdi paketi yükleyelim;

rpm -ivh mysql57-community-release-el7-11.noarch.rpm

Ve şimdide mysql server’ı kuralım;

yum install mysql-server

Kurulum bittikten sonra mysql’i başlatalım;

systemctl start mysqld

başladığını kontrol etmek için şu satırı çalıştırıp emin olabilirsiniz;

systemctl status mysqld

Şimdi geçici olarak mysql için bir şifre oluşturdu. Bunu bulalım;

grep 'temporary password' /var/log/mysqld.log

Bu size geçici şifreyi döndürür kopyalayın onu. Mysql ayarlarını yapılandırmaya başlayalım;

mysql_secure_installation

Sizden şifreyi isteyecek yapıştırıp enter deyin, sonra yine aynı şeyi yapıp yeni şifreyi belirleyin.
Mysql’e test bağlantısı yapıp sorunsuz olduğunu kontrol edelim;

mysql -u root -p

Şifreyi girdikten sonra mysql> diyorsa tamamdır bu iş. exit; deyip çıkın.

phpMyAdmin Kurulumu

Öncelikle şu satırı çalıştırın;

yum install epel-release

Ve sonra şu satırı

yum install phpmyadmin

Şimdi phpmyadmin’in ayarlarını yapacağız. Erişimi sadece sizin ip adresinizle kısıtlamak için;

nano /etc/httpd/conf.d/phpMyAdmin.conf

Eğer şöyle bir hata alıyorsanız: nano: command not found o zaman nano’yu aşağıdaki satır ile kurup tekrar deneyin.

yum install nano

Dosyayı düzenlemek için açtığınızda 127.0.0.1 ip’si gördüğünüz yerleri sizin kendi ip’niz ile değiştirin. IP’nizi google’a what is my ip address diye aratarak bulabilirsiniz.
Ctrl + x yapıp y tuşuna basıp enter’layarak dosyayı kaydedin.

Son olarak Apache’yi yeniden başlatıyoruz.

systemctl restart httpd.service

Artık sunucunun ip adresinin sonuna /phpmyadmin yazıp panele ulaşabilirsiniz.

http://SUNUCU_İP_ADRESİ/phpmyadmin

Mysql’de belirlediğiniz kullanıcı adı ve şifreyle giriş yapın. Kullanıcı adı her zaman root’tur.

Eğer IP kısıtlaması olmadan her ip’ye izin vermek istiyorsanız o zaman yine aynı dosyada şunu ekleyin;

<RequireAny>
   # Require ip 88.253.4.68
   # Require ip ::1
   Require all granted
</RequireAny> 

Ve yine apache’yi yeniden başlatıp test edin.

.htaccess Ayarı

Son olarak .htaccess kullanmak için ufak bir ayar yapacağız.
Şu komut satırın çalıştırın;

nano /etc/httpd/conf/httpd.conf

Açılan dosyada AllowOverride değerini All yapacağız.


. . .
 # 
 # AllowOverride controls what directives may be placed in .htaccess files.
 # It can be "All", "None", or any combination of the keywords:
 # Options FileInfo AuthConfig Limit
 #
 AllowOverride All
. . .

Ve son olarak apache’yi yeniden başlatıyoruz.

systemctl restart httpd.service

Evet, artık gerekli şeyleri kurduktan sonra cloudflare ile domaini bağlamak var.

Yazma İzinleri

Eğer her şeyi doğru kurup yazma izniyle ilgili problem alıyorsanız, şu komutu çalıştırıp çözebilirsiniz.

chcon -R -t httpd_sys_rw_content_t /var/www

Cloudflare Ayarları

Cloudflare.com’a girip kayıt olun. Daha sonra sağ üstten add site diyerek sitenin adresini yazıp start scan butonuna basıp 40 saniye bekleyin. İşlem tamamlandıktan sonra gelen yerde 2 tane A recordu girmeniz gerek bunlar aşağıdaki gibi;

A —- siteadi.com —- sunucu ip adresi
A —- www —- sunucu ip adresi

Bunları girip next deyince ödeme kısmı gelir, free deyip sonraki adıma geçin. O adımda size 2 tane nameserver verecek. Bunları alıp domaini aldığınız siteye girin, domaini düzenleye tıklayıp ns’leri bu 2 ns ile değiştirin.

http://intodns.com/siteadi.com buradan kontrol edin, değiştiğinde cloudflare üzerinden verify yapın o kısım yeşil olunca cloudflare ayarlarıda tamam demektir. Artık domain adını yazarak sunucunuza bağlanabilirsiniz ????

PHP ile Hex Renk Kodunun Doğruluğunu Kontrol Etmek

Girilen renk değerinin hex olup olmadığını doğrulamam gerekiyordu. Ufak bir araştırma sonucunda ise aşağıdaki kodlar ile doğrulama işlemi yaptım. Birgün size de lazım olabilir diye paylaşıyorum.

$color = 'fa6582';
if (ctype_xdigit($color) && (strlen($color) == 6 || strlen($color) == 3)){
   echo 'geçerli hex renk kodu';
} else {
   echo 'geçersiz bir hex kodu';
}

kolay gelsin ????

PHP ile Bir Dosyanın Karakter Kodlamasını Öğrenmek

Geçenlerde altyazıları yüklerken aklıma takıldı. Bazı altyazılar UTF-8, bazıları ise ISO-8859-9. Bu yüzden yazdığım kodlar birini düzgün gösterirken diğerini göstermiyordu. Bu yüzden dosyanın hangi karakter kodlamasına ait olduğunu öğrenmem gerekiyordu. Ve şöyle bir kod yazdım;

$open = file_get_contents('test.srt');
$enc = mb_detect_encoding($open, mb_list_encodings(), true);

echo $enc; // örnek çıktı: UTF-8 ya da ISO-8859-9

Peki bunu bulmak benim ne işime yaradı? Bu sayede header ile karakter setini belirleyebildim şu şekilde;

if ($enc == "UTF-8") {
    header('Content-type: text/vtt; charset=utf8');
} else {
    header('Content-type: text/vtt; charset=iso-8859-9');
}

Buda karakter problemlerimi çözmüş oldu. Bir gün böyle bir hata ile karşılaşırsanız artık çözümünü biliyorsunuz, kolay gelsin.

PHP cURL ile JSON Data Göndermek

Bazen API’ler sizden json data göndermenizi isteyebiliyor, bu gibi durumda cURL ile post işleminde ufak birkaç eklemek yapmak gerekiyor. İlgili kod parçacağına aşağıdan bakabilirsiniz. Ayrıca post edilen yerde alma yöntemi de biraz farklı, onuda 2. kısımda bulabilirsiniz ????

$data = array("name" => "Tayfun", "age" => "24");                                                                    
$data_string = json_encode($data);                                                                                   
                                                                                                                     
$ch = curl_init('http://localhost/b.php');                                                                      
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                                                                  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                                                                      
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
    'Content-Type: application/json',                                                                                
    'Content-Length: ' . strlen($data_string))                                                                       
);                                                                                                                   
                                                                                                                     
$result = curl_exec($ch);

echo $result;

isteği yaptığımız b.php’de ise json data’yı $_POST ile almaktan biraz daha farklı alıyoruz. Oda şöyle;

$posts = file_get_contents('php://input');
$jsonData = json_decode($posts, true);
print_r($jsonData);

Kolay gelsin ????

CSS Flex ile Sticky Footer Yapmak

Bu dersimde son zamanlarda sıkça kullandığım css’in flex özelliğini kullanarak sticky (yapışkan) footer yapımını göstermek istiyorum. Temel anlamda aslında kodlarım şunlardan ibaret;

<body>
<div class="header">header</div>
<div class="content">content</div>
<div class="footer">footer</div>
</body>

<style>
body {
   height: 100%;
   display: flex;
   flex-direction: column;
}
.content {
   flex: 1;
}
</style>

Daha detaylı görmek isterseniz aşağıdaki örneği inceleyebilirsiniz;

CSS :nth-child() Örnekleri

Daha önce mutlaka :nth-child() filtresini kullanmışsınızdır css yazarken. Ancak bu filtrenin bazı güzel ipuçları var, işimize yarayacak. Bu yazıda size hızlıca bunları göstermek istiyorum. Önce basit bir html yapısı kuralım;

<ul>
  <li>kutu 1</li>
  <li>kutu 2</li>
  <li>kutu 3</li>
  <li>kutu 4</li>
  <li>kutu 5</li>
  <li>kutu 6</li>
  <li>kutu 7</li>
  <li>kutu 8</li>
  <li>kutu 9</li>
  <li>kutu 10</li>
</ul>

<style>
ul, li {
  list-style: none;
  margin: 0;
  padding: 0;
}
ul {
  overflow: hidden;
}
ul li {
  list-style: none;
  float: left;
  width: 100px;
  height: 100px;
  display: flex;
  text-align: center;
  align-items: center;
  justify-content: center;
  border: 1px solid #ccc;
}
</style>

Şimdi gelelim örneklerimize..

İlk 5’i seçmek (:nth-child(-n+5))

Burada 5 yerine kaç yazarsanız ilk o kadarı seçilecektir.

ul li:nth-child(-n+5) {
   background-color: yellow;
}

Son 5’i seçmek (:nth-child(n+6))

Burada dikkat etmeniz gereken son kaçı seçecekseniz her zaman bir fazlasını yazmanız.

ul li:nth-child(n+6) {
   background-color: yellow;
}

3 ile 8 aralığındakileri seçmek (:nth-child(n+3):nth-child(-n+8))

ul li:nth-child(n+3):nth-child(-n+8) {
   background-color: yellow;
}

3’er 3’er seçmek (:nth-child(3n))

Ayrıca odd ve even ile de kullanımı var. Her ikisini de aşağıda gösteriyorum.

ul li:nth-child(3n) {
   background-color: yellow;
}


Her 3’ü ama sadece çift olanlar olsun istersek. Yani her 3’ü seçecek ama çift olan 6. oluyor. Dolayısı ile 3. yü atlayacak 6’yı seçecek 9. yu atlayacak 12’yi seçecek.

ul li:nth-child(3n):nth-child(even) {
   background-color: yellow;
}


Tam tersinde ise tekleri seçecek. Yani 3’ü seçecek 6’yı atlayacak 9’u seçecek…

ul li:nth-child(3n):nth-child(odd) {
   background-color: yellow;
}

4. den başlayıp 3’er 3’er seçmek (:nth-child(3n+4))

Burada eğer 2. den başlayıp 4’er 4’er seçmesini isterseniz 4n+2 demeniz yeterli ????

ul li:nth-child(3n+4) {
   background-color: yellow;
}

Daha fazla örnek görmek isterseniz, şuraya bir gözatın: http://nthmaster.com/

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

Her sene böyle bir yazı hazırlıyorum, bu sene de yılımı değerlendirmek için bu yazıyı yazıyorum ????

Bu yıl içerisinde çok büyük 2 olay yaşadım.
1- Darkod ofisini kapattım.
2- Türkiye’den Malta‘ya taşındım.

Evet, Malta’ya geldiğim için ofisimizi kapatmak zorunda kaldım, arkamda bir çok sevdiğimi bırakarak Malta’ya yerleştim. Burada bir hayat kurmaya, düzen oluşturmaya çalıştım. Elbette fırsatım oldukça gidip ailemi ve sevdiklerimi ziyaret ediyorum ancak artık burada bir düzen kurup yaşamaya çalışıyorum.

Bu aldığım kararın Türkiye’de olan olaylarla çok bir alakası yok, Türkiye son günlerini bile yaşayacak olsa vatanımı terk etmem. Bu aldığım kararlar tamaman kendimle alakalı, yani geçen yıldan kendime verdiğim sözler vardı. Yeni bir dil öğrenmek, gelirimi artırmak gibi. Sonuçta nerede doğduğun değil nerede doyduğun önemli demişler.

Burada ki şartlar ve bana katacakları daha iyi olduğunu düşündüğüm için ciddi bir karar vererek Malta’ya taşındım.

Geçen yıllarda aldığım şeyleri de söylüyordum, ancak daha sonra biraz düşününce bunun görgüsüzlük olarak algılanabileceğini fark ettim. Bu yüzden kayda değer bir şey almadığım sürece şunu bunu aldım demeyeceğim. Belki aldıklarımın ne üzerine olduğundan bahsederim ????

Ancak bu yıl kayda değer aldığım bir şey var. Oda arabam! Evet, o kadar güzel bir duygu ki ???? Sonunda kendime ait güzel bir şeyim var. Bu yıl kendime güzel bir araba aldım, gerçi aldıktan 1 ay sonra babama bırakıp Malta’ya yerleştim ama olsun sonuçta aldım ????

Babam içinde çok güzel bir haber oldu, onu öyle duygulu gördüm gururlu gördüm ya, bu saatten sonra ölsem de gam yemem. Bir şeyleri başardım!

Onun dışında bu yıl sürekli youtuber olmak istedim, hep bunun üzerine ürünler aldım. Kameralar, teknik ekipmanlar, ışıklar vs. Ama bir türlü youtuber olamadım, çünkü öyle kamerayı açıp sadece kendimi ve günlük rutinlerimi çekmek bana mantıklı gelmedi. Ben kimim aq? Öyle düşününce bir çok kez çektiklerimi koymaktan vazgeçtim ???? Ama bir gün doğru konsepti bulup youtuber olacağım, şimdilik eğitim videolarıyla devam!!

Bu yıl beni üzen tek şey aslında hazırladığım eğitim videoları. Koca bir yılda sadece 9 tane eğitim videosu hazırlamışım, şaka mı lan bu? Şaka değil, gerçek ???? Ama bunun sebepleri belli, yine de bahaneler ardına saklanmak istemiyorum o yüzden yeni yılda hedeflerimi çok daha büyük tutacağım.

Bu yıl içinde en çok hissettiğim duygu ise özlem oldu, sevdiğim insanların yanımda olmasına, yanımda olmasa bile en fazla yarım saatte gidip yanlarında olabileceğimi bilmeye alışmıştım. Şimdi böyle uzun zaman sonra görmek bir garip oluyor, ama sanırım bununla baş edebilirim. Sonuçta bunu tek yapan ben değilim değil mi?

Bu yıl Jonathan’ı göstermiştim sizlere, burada aldığım papağanım. Ne yazık ki gözlerimde ki rahatsızlıktan dolayı vermek zorunda kaldım, artık benimle değil. Asla bir hayvanın günahına bu şekilde girmek istemem, ancak sağlık devreye girdiği için böyle bir karar aldım. Yoksa benim yanımda olan, ölene kadar benimle kalır. Bunun en büyük örneği 4 senedir yanımda olan Sultan ve Süleyman kuşlarım gibi.

Bu yılın garip olanı ise 3 telefon kaybetmem oldu. Yani yat durunda cebimde telefonla atlamak, 2. aldığımı düşürüp parçalamak, 3. aldığımı 7 çıkacak diye satıp 7’yi alamamak gibi ???? Çokta uğraşmamak lazım, şu an 7 var ama bilin bakalım o nerede? Apple teknik servisinde, oda düştü ve kırıldı. Allah’ım çekilecek günahım mı var nedir?

Bu yılın en güzel gelişmesi ise Malta’ya taşındıktan sonra edindiğim farklı ülkelerden, farklı kültürleri olan arkadaşlarım. Gianfranco örneğin, italyan sosyal medya uzmanı. Mindaugas örneğin, litvanyalı ve front-end developer. Rachel örneğin, malta’lı ve marketing’ci. Helen mesela, ingiliz ve customer support. Ve daha niceleri, arap nargileciden tutunda, italyan dövmecisine kadar bir çok tanıdığım farklı insan var ve bu beni çok mutlu ediyor. Çünkü onlarla oturup konuşmak bile, aslında dünyada milyarlarca farklı fikrin olduğunu ortaya çıkarıyor.

Ön yargılı mı yaklaşıyorum yoksa benim çevrem mi bu şekildeydi bilmiyorum, ancak eskişehir’de sıradan insanlarla bile konuştuğunuzda duyduğunuz tek şey çoğunlukla geçim zorluğu, devlet düşmanlığı ve aşk acıları oluyor. Ancak burada bunun aksine herkesin çok farklı fikirleri var, öğrendiğim en önemli şey ise, bu adamlar kendilerini çok önemsiyorlar. Bu kadar yıl yaşadım, kendimi hiç önemsediğimi hatırlamam. Ama belki de önemsemek gerekir, önce kendimizi iyi hissetmek için bir şeyler yapmamız gerekir. Geçim derdine düşmeden cebinde paran azsa bile eğlenmesini bilmek gerekir.

“Mutluluğun parayla orantılı olmadığını anlamak için hala çok geç değil..”

Ayrıca bu yıl geçen yıl ki hedeflerimden 2’sini gerçekleştirdim. Geçen yıl yeni bir dil demiştim, ingilizce’yi öğrenmeye başladım ve ana dili ingilizce olan bir ülkede yaşıyorum. Bir diğeride 2015 kazancımı artırmaktı, geçen yıl 200+ bin üzeri kazanmıştım bu yıl bunu 400+ bin üzerine çıkardım. Ama önemli olan ne kadar kazandığın değil, kazandığınla neler yaptığındır. Bu yıl öyle zamanlar oldu ki birkaç tl’yi arar olduğum zamanlar yaşadım. Ama sonuç olarak buradayız, ve ölmedik ????

Yeni yıldan beklentim, ingilizcemi daha iyi geliştirmek. Bu yıl kazandığımdan çok daha fazlasını kazanmak. En az 70 eğitim videosu hazırlamak. En az 3 geçerli proje hazırlamak. Ve artı kendim için bir şeyler yapmaya başlamak.

Gelenekleri yerine getirip yeni yıl şarkımı şuraya bırakıyorum;

Ayrıca bkz:
Benim için 2015 nasıl geçti?
Benim için 2014 nasıl geçti?
Benim için 2013 nasıl geçti?
Benim için 2012 nasıl geçti?

PHP ile Sıfırdan Proje Oluşturmak

Bugün bir seriye başlamaya karar verdim. Aslında ilk bölümü çektiğimde bunun bir seri olmasını beklemiyordum ancak zaten eski PHP derslerim eskidiği için yenisini bunun ile çekebilirim.

İlk ders bir projenin altyapısı nasıl olmalı onunla ilgili. Yaklaşık 1 saatten uzun ve bir çok aksiliklerle dolu videoya aşağıdan ulaşabilirsiniz;

Güncelleme: .htaccess dosyanızda RewriteRule kuralının sonuna [QSA] ekleyin. Aksi taktirde $_GET parametrelerini çalıştıramazsınız. Örnek dosyalarda ben değişikliği yaptım, seviliyorsunuz.

Veritabanı sınıfı: https://github.com/tayfunerbilen/BasicDB
Permalink fonksiyonu: http://www.erbilen.net/php-sef-link-fonksiyonu
BasicDB Kullanımı: https://www.youtube.com/watch?v=RX7YxiMYzfA
Örnek dosyalar: https://yadi.sk/d/tt86xMDcxPYFc