windows 7 ve vista da php ile localhost'ta resim yükleyememe sorunu
Windows 7 altında localhost'a resim yüklemeye çalıştığımda yüklenen resimlerin bozulduğunu, daha doğrusu resimleri görmek için iznimin olmadığını farkettim. php.ini dosyasından temp klasörünü tanımladığımda sorunun çözüldüğünü gördüm. Yapmanız gereken php.ini dosyasını açıp şu satırı bulmak:

upload_tmp_dir
daha sonra bu kısma bir izin tanıtıyoruz. Ben C: altında temp adında bir klasör yarattım ve bu klasörün tam yolunu yazdım:

upload_tmp_dir = "C:\temp";
Apache'ye restart attıktan sonra resimlerin düzgün bir şekilde yüklendiğini göreceksiniz.
Age of Empires II: The Conquerors - Windows 7 renk problemi
Age of Empires fanları için üzücü bir olay windows 7'nin bu oyunu düzgün çalıştıramaması. Herhangi bir yamanın çıkması da imkansız. Age of Empires oyununu Windows 7 altında düzgün renklerle çalıştırmanın sadece 1 yolu var.

- İlk olarak oyunu açıyoruz.
- Oyun içindeyken alt+tab yapıp masaüstüne dönüyoruz. burada ctrl+alt+del ile ya da ctrl+shift+esc ile windows görev yöneticisini açıyoruz.
- İşlemler tabına gelip explorer.exe yi bulup işlemi sonlandır diyoruz.
- Oyun ekranına geri döndüğümüzde renkler normal haline dönmüş olacaktır.

Oyunu kapattıktan sonra masaüstünü geri getirmek içi
javascript - change input type from text to password or vice versa
i guess first you tried this code change type. however code doesn't work on ie 6.

document.getElementById(id).type = 'text';

here's a tiny function that i wrote to solve problem. first we create an input box, then we get the value of old input and set it for new one, finally remove old box and add new.


Fatal error: Can't use method return value in write context
başlıktaki hatayı "empty()" fonksiyonunu bir "method" ile kullanmaya çalıştığımda aldım. manual'e göz gezdirdiğimde farkettim ki "empty()" "method" ve fonksiyonlar ile kullanılamazmış.

yani şöyle bir kod yazmaya çalışırsak başlıktaki hatayı alırız:


<?php

class foo
{
    public function bar()
    {
        return 'baz';
    }
}

$foo = new foo;

if(empty($foo->bar()))
{
    echo 'oops';
}
else
{
    echo $foo->bar();
}

?>



ekran çıktısı:

Fatal error: Can't use method return value in write context in D:\AppServ\www\test.php on line 13

çözüm için method'dan gelen değ
php - method chaining - object oriented programming
php 5 ile gelen oop geliştirmelerinden birisi de class'ların sahip olduğu function'ların (method) object'leri return edebilmesidir. tam türkçe kullanacak olursam sınıfların fonksiyonlarının nesneleri döndürebilmesidir.

bu olayın güzelliği şöyle bir kod yazmamıza izin vermesidir.

$object->method1()->method2()->method3()->...

peki bu tarz bir yazım bize ne kazandırır? kodumuzun okunabilirliğini arttırır ve tekrarlardan kurtulmamızı sağlar.

çalışan bir örnekle yazıma devam edeceğim. geleneksel yöntemle yazacağımız kod bloğu şöyle olacaktır:

samsung nc10 netbook (sammy nc10)


gel zaman git zaman edindik bir samsung nc10 netbook. özelliklerini sıralayacak olursam:

orijinal windows xp home edition ile birlikte geliyor.
üzerinde tipik netbook işlemcisi 1.6 ghz atom n270 var.



standart olarak 1gb ram ile geliyor. ancak ram değiştirme işlemi çok kolay olduğu için kendi çabanızla 2gb'a terfi ettirmeniz mümkün.



php short tag - long tag sorunsalı
evet php'de böyle bir sorunsal var. short tag mı kullanmalıyız yoksa long tag mı? öncelikle örneklerimizi verelim:

< ?=$foo?>


<?php echo $foo?>



görüldüğü üzere short tag'ın kullanımı, yazımı çok daha kolay. ancak şöyle bir şey var ki php.ini dosyasına erişimimizin olmadığı server'larda short tag kullanımı sıkıntı yaratabilir. standart php kurulumunda php.ini'de "on" olarak gelen "short_open_tag" değeri "off" olarak değiştirilmiş olabilir. bu durumda php kodumuzda short tag kullandığımız bölümler çalışmayacaktır.

sonuç olarak eğer php.ini dosyasına erişimimiz var ise
__autoload() ve Exception
açıklama eklenecek.


<?php

function __autoload($class_name)
{
    $file $class_name '.php';

    if(!file_exists($file))
    {
        eval("class $class_name{}");
        throw new Exception("Class $class_name not found");
    }

    require_once($file);
}

?>

preg_replace ve highlight_string
php kodlarını renklendirmeye çalışırken farkettim ki preg_replace içinde highlight_string kullanamıyormuşuz. peki o zaman ne yapacağız? işte burada devreye preg_replace_callback fonksiyonu giriyor.

örneklerle açıklayacak olursam:

normal şartlarda aklınıza ilk gelecek kod şu olacaktır.


<?php

$string '
<?php
    $foo = "bar";
    echo $foo;
?>
';

$string preg_replace("'\<\?php(.*)\?\>'imxsU"highlight_string("\\1"), $string);

echo $string;

?>



ekran çıktısı:

\1

gördüğünüz gibi ekrana renklendirilmiş kodumuzu değil renklendirilmiş \1 değerini basıyo
İlk blog ilk yazı :)
internete sektörüne(!) gireli 5. yılı geride bıraktığım şu günlerde ilk kez kendime ait bir blog, site artık ne derseniz açtım sonunda. terzi kendi söküğünü dikemez hesabı bir türlü kısmet olmamıştı. hoş şimdi açmamın özel bir nedeni var zaten. kendi yazdığım php mvc framework'ü test etmek için açtım bu siteyi.

bundan sonra kendime ait bir sitede çeşitli yazılar karalayabileceğim artık. ağırlıklı olarak php, mysql, ajax, css ve javascript konularından bahsedeceğim. tabi araya kendimle ilgili şeyleri sıkıştırmadan da olmaz.

edit: iletişim sayfası bile yok yani o kadar :D
şuralara da bakın derim

Burak İlem

Ali Yılmaz