Javascriptte düzenli ifadeleri dinamik olarak kullanmak…
new RegExp('\\b'+degisken+'\\w+\\b', 'gi');
MySQL’de latin1 bir tabloyu utf8′e gerçirmek
Adım 1: Dump of Dump (MySQL Dump ile saf datayı alıyoruz)
mysqldump --user=kul -p --default-character-set=latin1 -c --insert-ignore --skip-set-charset dbname > dump.sql
Adım 2: Make (Yeni Veri Tabanı Oluştur)
mysql --user=user -p --execute="DROP DATABASE dbname;
CREATE DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;"
Adım 3: From Dump To Clever (Eski datanın utf-8 e çevrilmesi)
iconv -f ISO-8859-1 -t UTF-8 dump.sql > dump_utf8.sql
perl -pi -w -e 's/CHARSET=latin1/CHARSET=utf8/g;' dump_utf8.sql
Adım 4: A little modify (Data içerisinden latin tabloların utf-8 yapılması)
nano ump_utf8.sql
diyerek SQL dosyamız içerisindeki create lerin popolarındaki latin işaretlerini utf8 olarak değiştiriyoruz.
Adım 5: Go Back Your Hole (Eski datamızı UTF-8 veri tabanımıza geri yüklüyoruz)
mysql --user=kul --max_allowed_packet=16M -p --default-character-set=utf8 dbname < dump_utf8.sql
Tabiki de sorunlarla karşılaşma olağınız var. Bu konuda elimden geldiğince yardımcı olacağım.
Plesk’e harici FTP hesabı eklemek
Yakın zamanda lazım oldu...
useradd username -d /path/to/ftp
passwd username
usermod -g psacln username
usermod -G psaserv username
ve yeniden istanbul
Artık istanbuldayım... 2004 te ayrıldığım şehre geri döndüm ve kalıcı olarak. Bakalım neler getirecek. Merakla bekliyorum.
Yoğunluğumu üzerimden attıktan sonra yazılarıma devam edeceğim.
Ufak bir sorun
Şu sıralar biraz yoğun olduğum için makele'nin geri kalanı ile ilgilenemiyorum ama bir kaç gün içerisinde eminim ki ilgileneceğim.
Degiskenden objeye
Manual'de gezinirken gördüğüm bir yöntem gerçekten hızlı bir kullanımı var.
<?php
$obj = (object) array('foo' => 'bar', 'property' => 'value');
echo $obj->foo; // prints 'bar'
echo $obj->property; // prints 'value'
?>
PHP’de sınıf yapılarını anlamak…
Son günlerde 2002-2004 yılları arasında aktif olduğum ceviz.net'in forumunda tekrardan aktif olmaya başladım işlerden fırsat buldukca baktığım forum sayfalarında özellikle dikkatimi çeken sorular ve sorunların başında bir çok PHP kullanıcısının ve PHP öğrenmeye niyetlenmiş kişilerin SQL ile PHP yi hatta HTML'i birbirinden ayırt edememeleri idi. PHP bölümünde SQL sorularının gezmesi ve yöneticilerinde bu başlıkları ilgili yerlere taşımaması tabikide ayrı bir soru işareti oluşturuyor.
Forum içerisindeki sorulardan bir-iki tanesi beni bu makaleyi yazmaya itti:
1. php'de sınıflar nerelerde kullanılmalıdır ?
2. php'de sınıflar sizcede çok saçma değilmi ?
Bu sorular bana kişilerin sınıf yapılarının programlama içerisinde ne şekilde kullanılabileceği hakkında pek bir bilgiye sahip olmadıklarına dair düşüncelere sevk etti.
Birinci sorumuz sınıfların gerçekten nerelerde kullanılabileceği hakkında sorarken diğeri programlamada sınıfın nasıl ve nerede kullanılması gerektiğini bildiğini ve PHP'nin bunun için yetersiz olduğunu iddia ediyor du.
Ben ise bu sorulara kendi bilgimce bir cevap vermeye çalıştım.
Öncelikle Sınıf'ın ne olduğunu ortaya koyalım. Her sınıf bir obje'yi ele alır. Bu konuda basit bir obje ile işimize başlıyabiliriz. Ne seçelim ne seçelim ? Her yerde kullanabileceğimiz bir şey olmalı bu ? Veri tabanı bağlantısı ? I-ıh olmaz çok karışık. Bir form yapısı ? I-ıh o da karışık. Her zaman hepimiz dosya dizin işlemleri üzerine işlevler gerçekleştirmişizdir değil mi ? Bir dosya yüklemesi, oradan oraya dosya taşıma, kopyalama, dosya oluşturma gibi işlemleri yapacak bir sınıf geliştirebiliriz. İlk bakışta bir fonksiyon topluluğu gibi görünüyor evet. Hadi biraz kod yazalım.
<?php
class dosyadizin {
protected $dizin;
public function __construct($dizin) {
$this->dizin = $dizin;
}
}
$dizin = new dosyadizin('./');
?>
Yukarıdaki kodlarımızızı tanıyalım şimdide class, public, function, $this, __consturct bu arkadaşlar ne işe yaradığını anlayalım...
class: Bir sınıf tanımlamamıza imkan sağlayan sözcüktür.
public: Oluşturmuş olduğumuz obje'nin kullanım tipini belirlemek için kullanırız. PHP'de şu an bunlardan üç(3) tane vardır. Public Protected Private olarak.
• Public: Public olarak tanımladığımız bir değişken/fonksiyon'a sınıfımız içerisinde ve dışarıdan erişebiliriz.
• Protected: Protected olarak tanımladığımız bir değişken/fonksiyonumuzu sınıfımız içerisinde extend ettiğimiz başka bir sınıf üzerinden kullanabiliriz.
• Private: Protected olarak tanımladığımız bir değişken/fonksiyonumuza sadece sınıfımız içerisinden erişebiliriz.
function: bildiğimiz fonksiyon'u ifade eder
$this: $this'i büyülü bir cuval gibi düşünebiliriz. Bir fonksiyondan bir diğer fonksiyona bir sınıftan diğer sınıfa bir şeyler taşımak için görevlendirdiğimiz bir taşıncı gibi.
__consturct: Bu fonksiyon gibi “__” içerisinde başlayan fonksiyonlarımızda büyülüdür. Bunlardan ilerleyen zamanlarda bir dizi göreceğiz. Hatice'yi geçtikten sonra neticemizde bu elemanımız sınıf oluşturuluken yapılmasını istediğimiz işlemleri içerisinde barındırmaktadır.
Sınıfımızı oluştururken kullandığımız şeyler hakkında bilgi edindikten sonra sınıfımızı biraz geliştirelim.
<?php
/**
* dosya dizin işlemleri için sınıf örneği
* @author Murat BEŞER
*
*/
class dosyadizin {
/**
*
* Geçerli dizinimiz.
*
* @var string
*/
protected $dizin;
/**
* Gecerli dizindeki dosya listesi
*
* @var array
*/
protected $dosyalar = array();
/**
* geçerli hata kodu
*
* @var integer
*/
private $_hataNo = null;
/**
*
* Hata mesajları
*
* @var array
*/
private $hatalar = array(
0 => 'Dizin adı belirtilmemiş',
1 => 'Dizin Mevcut değil'
);
/**
*
* @param string $dizin
*/
public function __construct($dizin = './') {
$this->setDizin($dizin);
$this->dosyalar = $this->dizinTara($this->dizin);
}
/**
*
* @param string $dizin
* @return boolean/string
*/
public function ayarlaDizin($dizin) {
if (is_dir($dizinAdi)) { // Dizinin varlığını kontrol ediyoruz
return $this->dizin = $dizin; // Dizinin içeriğini alıyoruz.
}
$this->_hataNo = 1;
return false;
}
/**
*
* @return string
*/
public function gosterDizin() {
return $this->dizin;
}
/**
*
* @param string $dizinAdi
* @param string $bilgi
* @return array
*/
public static function dizinTara($dizinAdi = '', $ata = true, $bilgi = true) {
/**
* Döndüreceğimiz değişkeni ve türünü herhangi bir hataya karşın belirliyoruz
*/
$dosyalar = array();
/**
* Gelen dizinin belirtilip belirtilmediniği kontrol ediyoruz.
* Not: Buna ne gerek var diyebilirsiniz ama bazı zamanlar gerekli olabiliyor.
*/
if ($dizinAdi != '') {
$dizinAdi = $this->_dizin;
}
if (is_dir($dizinAdi)) { // Dizinin varlığını kontrol ediyoruz
$dosyalar = scandir($dizinAdi); // Dizinin içeriğini alıyoruz.
} else {
$this->_hataNo = 1;
return $dosyalar;
}
if ($bilgi == false) {
$gecerli = array_search('.', $dosyalar); // arrayımıza ait keyi alıyoruz
$ust = array_search('..', $dosyalar);
/**
* burada !== kullanmamızın sebebi array_search'ün bize aynı zamanda
* sıfır anahtarına sahip elementide döndürebiliyor olmasından kaynaklı.
*/
if ($current !== false) {
unset($dosyalar[$gecerli]); // gecerli dizini kaldırıyoruz.
}
if ($parent !== false) {
unset($dosyalar[$ust]);
}
}
if ($ata == true) {
$this->dosyalar = $dosyalar;
}
return $dosyalar; // değişkeni geri döndürüyoruz.
}
/**
* Hata mesajlarını belirler
*
* @param array/integer $id
* @param value $key
* @return boolean/array
*/
public function hataMesajiBelirle($key, $value) {
if (is_array($key)) {
return $this->hatalar = $key;
} else {
if (key_exists($key)) {
$this->hatalar[$key] = $value;
} else {
return false;
}
}
}
}
?>
Şimdilik bu kadar, saat bayağı geç olmuş
20:54 te çokgeç canım. Bir sonraki yazıda sınıfın yapısı hakkında daha detaylı bilgiler vereceğim. Fonksiyonların ve static 'in kullanımı üzerinde duracağız.
Türkçe’leşen PHP Manual
Bir önceki yazımda Genel Script'ing bilgisi vereceğimi bahsetmişim. Fakat php.net içerisinde yeni baştan çok güzel bir dökümantasyonla birlikte Türkçe'leştirme çalışması olduğunu fark ettim. Bu gerçekten sevindirici bir konu.
PHP ye yeni başlayan arkadaşlar lütfen Dil Başvuru Kılavuzunu bir okusunlar
http://www.php.net/manual/tr incelenmesinde fayda görüyorum.
Eksiklik
Hepimiz okul hayatına ilk okul veya ilköğretim ile başlamıştır sonrasında lise veya orta okul ve ardından üniversite ? Peki benim bir çok forumda gördüğüm soruları soran kişilerin çoğu PHP'yi daha tam olarak öğrenmeyi bırakın PHP ile HTML arasındaki farkı bile bilmeden sorulan sorular görüyorum.
Bir çok kişiye kullandıkları methodlar hakkında yorum yaptığımızda ise "ben sizin kadar iyi bilmiyorum" veya "herkes sizin kadar iyi bilmiyor" cevaplarıyla karşılaşıyoruz. Bizim amacımız size bu işi öğrenmeniz için yardımcı olmak. Bilgilerimizi ve fikirlerimizi paylaşmak...
Neyse, bu konunun gün geçtikce daha fazla çoğalacağını düşündüğüm için hepinizinde tahmin edeceği sebebten bıraktığım PHP Başlangıç Dersleri serisine kaldığım yerden devam ediyorum.
Umarım insanlar alfebe'yi öğrenmeden kelime ve cümle kurmaya kalkışmazlar artık.
iyi günler.
Autumns Monologue
Oh why cant I be what you need
a new improved version of me
but i'm nothing so good
no i'm nothing
just bones, a lonely ghost burning down songs
of violence of love and of sorrow
i beg for just one more tomorrow
where you hold me down fold me in
deep deep deep in the heart of your sins
Chorus:
I break in two over you
I break in two
And each piece of me dies
And only you can give the breath of life
But you dont see me, you dont...
here i'm in between darkness and light
bleached and blinded by these nights
where im tossing and tortured til dawn
by you, visions of you then youre gone
the shock lifts the red from my face
when i hear someone's taking my place
how could love be so thoughtless, so cruel
when all, all that i did was for you
Chorus:
i break in two over you
i break in two
and each piece of me dies
and only you can give the breath of life
but you dont see me you dont..
i break in two over you
i break in two
and each piece of me dies
and only you can give the breath of life
but you dont see me you don't...
i break in two over you
i break in two over you, over you
i break in two
i would break in two for you
now you see me
now you don't
now you need me
now you don't
İngilzicesi iyi olmayanlar buradan okuyabilir.
Lütfen hayata benim için iyi bak....