“Php” Kategorisi için Arşiv

PHP de DATETIME tipini değiştirme

Projelerimizde genelde MySql kulanıyoruz ve zaman biçimlerini DATETIME şeklinde kayıt ediyoruz. En azından ben öyle yapıyorum.

Bu konuda birkaç sorunla karşılaşabiliyoruz. MySql, sütunumuz DATETIME tipine iken 2011-03-12 22:32:25 şeklinde verileri kayıt ediyor. Biz projelerimizde genelde bu uzun şekilde ekrana çıktı verdirmiyoruz. Bu çıktı tipini düzenlemek ise ilk başta düşündüğümüzde zormuş gibi görünüyor.

PHP nin yardımcı fonksiyonları olan date_format(); ve date_create(); fonksiyonları ile sorunumuzu basitce çözebiliyoruz.

function TarihDuzenle($t) {

return date_format(date_create($t), 'H:i d/m/Y');

}

şeklinde hazırladığım minik fonksiyon yardımınıza koşacaktır. Bu fonksiyonu

 

echo TarihDuzenle('2011-03-12 22:32:25');

Şeklinde kullandığınızda ekrana gelecek olan çıktı;

22:32 12/03/2011

olacaktır.

İpucu:

WordPress de ise bu işlemi mysql2date(); fonksiyonu ile kolayca yapabilirsiniz.

Mart 13, 2011 Kategorisi: Php   Devamını Oku

Php ile Dizin İçindeki Dosyaları Sayfalama

Uzun zamandır php'de işinize yarayabilecek kodları paylaşamıyordum. Sağda solda birkaç kendini bilmez arkadaş, php-copy-paste üstadı oldukları için forumlarda paylaştığımız kodları derleyip kendileri hazırlamış gibi paylaşır oldular. Olsun, onlarda bir şekilde ekmek yiyecek.. Neyse. Biz gelelim esas konumuza;

Aşşağıda vereceğim kod ile, bir dizindeki dosyaları sayfalar halinde listeleyebileceksiniz. Atıyorum makalelerinizin olduğu bir klasör var, ve bu makaleleri 10'ar lı gruplar halinde sayfalamak istiyorsunuz. Bu noktada yardımınıza bu kod blogu koşuyor:

<?php
# EvrenWeb
# EvrenCe.Com 2009

$dizin = "./makale";
$tutucu = opendir($dizin);

 while(($dosya = readdir($tutucu)))
  {
    if(is_file($dizin."/".$dosya))
   $makale[] = $dosya; }

closedir($tutucu);

$limit = 10;
$sf = $_GET["id"];
if($sf < 1) $sf = 1;
$toplam = count($makale);

$kactan = ($sf-1) * $limit;
$kaca = ($kactan+$limit);
if($kaca > $toplam) $kaca = $toplam;

for($i=$kactan; $i < $kaca; $i++){
echo "<p>".($i+1).") "."<a href='".$dizin."/".$makale[$i]."' target='_blank'>".$makale[$i]."</a></p>";
}

echo "<p>";
for($i=1; $i <($toplam / $limit)+1; $i++){
if($sf == $i)
echo "$i";
else
echo "<a href='index.php?page=makaleler&id=$i'>\t$i</a>\n";
}
echo "</p>\n";
?>
Kasım 18, 2010 Kategorisi: Php   Devamını Oku

Facebook’a özel içerik

Bazen projelerimizde sosyal medya paylaştırıcıları kullanırız. Hatta bu sıralar kullanmak zorundayız.. Şu'an bu yazının altında da gördüğünüz facebook paylaşım aracına özel sayfa göstermek istiyorsanız bu yazı size göre !

İçeriğinizi facebook ile paylaşırken şu tarz bir link kullanıyorsunuz.

http://www.facebook.com/share.php?v=4&src=bm&u=http://www.evrence.com/programlama/fbml/facebooka-farkli-muzik-calar-ekleme.html&t=Facebook’a Farklı Müzik Çalar Ekleme

Burada, facebook üzerinde bulunan share.php ye bilgi yolluyor, share.php de, sitenize gelip içeriği kontrol edip

yukarıda gördüğünüz gibi minik bir taslak çıkarıyor. Mevzu aslında bundan ibaret. Peki biz içeriğimizi facebook'a özel nasıl göstereceğiz bu yazıda ona değineceğim.

Bu işi facebook'da müzik paylaşırken yapma ihtiyacı duymuştum. Her ne kadar şuan yayında olan bir site olmasada müziklerinizi facebook music player üzerinden paylaşma imkanı sağlayan bir taslağım elimde mevcut. Bu işi nasıl yaptığımı kimse anlamasın diye içeriğimi facebook'a özel gösteriyordum. Yapacak olan adam dökümantasyondan arayıp bulabilir, dünyayı yeniden keşfetmiyoruz nede olsa. Gerçi nasıl yaptığım konusunda bir yazı yazmayıda düşünmüyor değilim neyse..

Share.php yi sunucuma davet ettiğimde, sordum kendisine sen kimsin neyin fesisin diye. Bana şöyle bir çıktı verdirtti,

HTTP_USER_AGENT: facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)

Facebook, kendisini böyle tanımlatıyordu. Muhtemelen biz geliştiriciler için hazırlanmış birşey :)

Bundan sonrası iki satır kod parçası..

Ağustos 1, 2010 Kategorisi: Php   Devamını Oku

PHP’de Session Zamanını Belirlemek

PHP de oturum işlemleri gibi önemli işlerde genelde $_SESSION değişkeni kullanılır. Mesela üyenizin sitenizde oturum açıp açmadığını session yardımı ile kontrol eder, gerekli bilgiler sisteminize bu session değişkeni üzerinden aktarırsınız. Olmazsa olmazlardan birisidir yani.

Session konusunda karşımıza çıkabilecek bir problem olan session zamanını ayarlamaktır. Mesela üye, 10 dakika boyunca herhangi bir işlem yapmadı ise o oturumu sonlandırmak, üyeniz için faydalı bir özellik olabilir. İnternet cafeden sitenize erişmiştir ve çıkış yapmadan kalktı ise ondan sonra gelen, sitenizi sanki oymuş gibi kullanabilir, istenmeyen şeylerin olmasına sebep olabilir. Sizde programcı olarak bu gibi durumları göz önünde bulundurmalısınız. Peki bu kontrolü nasıl sağlarsınız. Pekçok yöntemi var fakat programlama mantığınızın gelişmesi açısından aşşağıda vereceğim örnek, en iyi örnek olsa gerek..

session_start();
// timeout periyodu, sn olarak
$inactive = 600;

if(isset($_SESSION['timeout']) ) {
$session_life = time() - $_SESSION['timeout'];
if($session_life > $inactive)
{ session_destroy(); header("Location: cikis.php"); }
}

$_SESSION['timeout'] = time();

Yukarıdaki kodu yorumlayamadıysanız php.ini dosyanıza dalıp gerekli ayarlamayı yapabilirsiniz. php.ini de bulunan session.gc_maxlifetime değişkeni ile session un zamanını ayarlayabilirsiniz. Bu değer ön tanımlı olarak 1440 saniyedir. Fakat pek çok hosting sağlayıcısı bunun üzerinde sizlere oynama imkanı vermeyecektir o yüzden başka bir yol olan .htaccess üzerinden işimizi halledeceğiz.

php_value session.gc_maxlifetime 300

kodunu .htaccess dosyamıza ekleyerek session ömrünü 300 saniye yapabiliriz. Kontrol etmek için ise .htacess in bulunduğu klasörde bir sayfa oluşturup phpinfo() fonksiyonunun çıktısına bakmaktır.

Unix sistemlerde sessionlarımız /tmp klasöründe saklanır. Bu klasör sistem tarafından belirli araklıklarla temizlendiği için istemediğimiz durumlar ortaya çıkabilir. Bunu değiştirmek istersek, yukarıdakine benzer şekilde php.ini den yada .htaccess dosyasından yapabiliriz. php.ini ye erişimimizin olmayacağını varsayarak direk .htaccess için bilgi vereceğim,

php_value session_save_path /klasörün_yeri

yukarıdaki parametreyi ekleyerek /tmp klasörünü değiştirebiliriz.

Sessionlar ile ilgili daha detaylı bilgiler edinmek isterseniz burayı inceleyebilirisiniz.

Ocak 23, 2010 Kategorisi: Php   Devamını Oku

PHP ile Rastgele Söz

PHP-logoBazen projelerimizde rastgele sözler işimize yarayabilir. Tabiki bunu sadece söz ile kısıtlamamakta lazım. Mesela yayınlamış olduğum in-post advertisment isimli wordpress eklentimde de bu yol izlenerek rastgele reklam gösterme işlemini yapmıştım.

Şimdi ise sizlere bu php de rastgele işlemlerinin yolunu göstermek amacıyla blog'umda Albert Einstein'ın sözlerinin olduğu kısımın altyapısını anlatacağım.

Burada sözlerimizi bir dizi altında topladım. Bu dizi içerisinden de herhangi bir elemanı php nin array_rand fonksiyonu sayesinde seçtim.

Kalabalık etmemesi için birkaç tane sözü yazacağım buraya.

Eylül 3, 2009 Kategorisi: Php   Devamını Oku

Php ve Flash ile Geri Sayım İşlemi

Azda olsa işimize gerekebiliyor bu tarz uygulamalar. Bilgisayarımı karıştırırken karşıma çıkan bu uygulamayı sizlerle paylaşayım istedim.

Görünümünde bir geri sayım uygulaması. HTML kodundaki birkaç parametre ile işinizi kolayca halledebilirsiniz. Şimdi gerekli kodumuzu ve parametlerimizi tanıyalım.

<object type="application/x-shockwave-flash" data="fl_countdown_v3_3.swf?mo=9&amp;amp;amp;da=02&amp;amp;amp;snd=on" width="250" height="60">
<param name="movie" value="fl_countdown_v3_3.swf?mo=9&amp;amp;amp;da=02&amp;amp;amp;snd=on" />
	</object>

Buradaki mo, da ve snd bizim ilgili parametrelerimiz. Bu değerler ile oynayarak geri sayılacak tarihi belirleyebiliriz. Ben burada dokuzuncu ayın ikinci gününe (Doğum günüme) geri saydırma işlemi yaptırdım :)

  • mo = ay
  • da = gün
  • snd = ses

ilgili parametrelerimiz ve anlamlarıda bunlar. Bu geri sayım uygulamasının örneğini buradan indirebilirsiniz.

Eylül 2, 2009 Kategorisi: Php   Devamını Oku

Timthumb ile resim büyütme

PHP-logoBirçok wordpress temasında timthumb aktif olarak kullanılıyor. Bilmeyenler için kısaca açıklayayım timthumb'un ne olduğunu. timthumb resimlerin ön izlemelerini (thumbnail) oluşturmanıza yarayan, cache destekli kod parçacığıdır.

Evet dediğim gibi ön izlemelerini oluştırmaya yarayan. Fakat her zaman ön izlemlerini oluşturmak istemeyiz. Resim kalitesinden ödün versek bile mecbur olduğumuz durumlarda gerekli resimi büyültmemiz gerekebilir. En azından benim bu sıralar üzerinde çalıştığım bir temada bu gerekti.

Ağustos 28, 2009 Kategorisi: Php   Devamını Oku

Sitenizin WordPress Tabanlı Olduğunu Gizlemek

wordpress-logo-shine Bu sıralar worpress sistemine takmış durumdayım. Tatilde iken worpress bileşenlerini, çalışma sistemini baya incelemiştim. Olay nereden başlıyor nerede bitiyor..

Hep kafama takılmıştır wp-content klasörü. İncelemem sırasında wordpress'de bunu değiştirebileceğimizin farkına vardım. Bunu yapmak çok kolay aslında. Ana dizindeki wp-settings.php yi editlememiz gerekiyor.

Satır 113 deki,

113 define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' );

Buradaki wp-content yazısını istediğiniz dizin ismi ile değiştirin. Ondan sonra 356. satırdaki

356 define( 'WP_CONTENT_URL', get_option('siteurl') . '/wp-content');

wp-content yazısını aynı şekilde değiştirin. İşlem budur :)

Yukarıdaki işlemi yapmanız yeterlidir. Fakat, size tavisiyem wp-settings.php içindeki bütün wp-content yazılarını istediğiniz isim ile değiştirmenizdir.

İşlem budur dedik ama üzerine de bir cila çeksek iyi olur.

Ağustos 21, 2009 Kategorisi: Php, Teknoloji   Devamını Oku

PHP ile Dosya Çekme

Turk-php de konusu geçince bu yazıyı hazırlamaya karar verdim. Örneğin bir sitedeki dosyanın linkini kendi sitemizde vermek istiyoruz ama adamlar dışarıdan erişimi yasaklamış. Öyle ise böyle diyerek bizde onlara böyle bir kod yardımı ile cevap vermiş oluruz :)

Tabiki her durum için işimizi görmeyebilir fakat onlar işin kolayına kaçıp minik bir htaccess dosyası oluşturmuşlardır ve başka sitelerden tıklanan linkleri engelliyorlardır. Bizde kodumuz yardımıyla sanki onların sitesindeymişiz gibi şaka yapıp, dosyamızı indirmenin keyfini süreriz. Lafı fazla uzatmadan kod kısmına gelelim,

< ?php
 
/**
 * @author EvrenWeb
 * @copyright 2009
 */
 
function dosya_indir($link,$name=null) {
 
$link_info = pathinfo($link);
$uzanti = strtolower($link_info['extension']);
$file = ($name) ? $name.'.'.$uzanti : $link_info['basename']; 
 
$curl = curl_init($link);
$fopen = fopen($file,'w');
 
curl_setopt($curl, CURLOPT_HEADER,0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl, CURLOPT_REFERER, "http://www.evrenweb.net/");
# Yukarıda dosyayı başka siteden çektirmeye izin vermeyebilir
# Bu yüzden kimliğimizi gizleyip, kendi sitesindeymişiz gibi izlenim
# Yaratıyoruz. Hangi siteden çekiceksek o sitenin adresini yazaviliriz.
curl_setopt($curl, CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_0);
curl_setopt($curl, CURLOPT_FILE, $fopen);
curl_exec($curl);
curl_close($curl);
 
fclose($fopen);
header('Content-Description: File Transfer');
header('Content-Type: application/download');
header("Content-Disposition: attachment; filename="".basename($file)."";");
header('Content-Length: ' . filesize($file));
@readfile($file) OR die();
 
}
 
# dosya_indir($_POST['cek']);
 
dosya_indir($_GET['cek']);
 
# dosya_indir($_GET['cek'], "yeni_ad") şeklinde dosya ismini değiştirebiliriz
 
?>

Yukarıdaki kodumuzu dosya.php olarak kayıt edelim. Şimdi çekme işlemini nasıl yapacağımıza geldi sıra. Çook basit ! http://www.siteniz.com/dosya.php?cek=CEKİLECEK-DOSYANIN-ADRESİ şeklinde linkizimizi tarayıcımıza yazıcaz ve olup biticek :) Ben örnek olarak burada form kullanıcam, isterseniz sizde $_GET yerine $_POST yazıp hazırladığınız form ile dosyayı çektirebilirsiniz. Form örneğide burada,

 
<form action="http://evrenweb.net/ornek/php/php-ile-dosya-cekme/dosya.php" enctype="application/x-www-form-urlencoded" method="post">
<input name="cek" size="25" style="border: 1px solid rgb(102, 102, 102);" value="http://www.egonomik.com/script/zip/resimyaz.zip" type="text"/>
<input value="İndir !" type="submit"/>
</form>
 

Bir önceki yazımda konusu geçen kodun hazır halini Egonomik'in sitesinden çekelim :)

Mayıs 15, 2009 Kategorisi: Php   Devamını Oku

PHP İle Resim Üzerine Yazı Yazma Scripti

Sahile, köprüye istediğimiz yazıyı yazdırdığımız birçok site mevcuttu bunları hepimiz biliyoruzdur. Fakat bunu nasıl yapıyorlar merak edenlerimiz varsa Caner arkadaşım blog unda çok güzel anlatmış.

Aslına bakarsanız çok basit, birkaç satır kod ile yapılıyor bu işlem. Sanıldığı kadar kafa karıştırıcı bişey değil.

Vakit bulursam resim üzerine mükemmel işler yapan bir bileşenide buradan sizlere anlatıcağım. Tek satır kodla resim üzerine neler yapıldığını görünce hayretler ediceksiniz :)

Neyse biz egonomik'in yazdığı bu kodu inceleyelim. Gerçi herşeyi kodların içerisinde anlatmış pek söylenecek laf yok :)

<?php
// PHP Resim Üzerine Yazı Yazma
// Herhangi bir resim üzerine yazı yazabilirsiniz.
// Caner ÖNCEL - http://www.egonomik.com
 
// Kullanım:
// Yazılmak istenen metni $_GET ile çağırıyoruz
// Örnek: resimyaz.php?text=Merhaba Dünya
 
$resim = "bg_resim.png"; // Üzerine yazılacak resmi seçiyoruz
$font = "fonts/segoepr.ttf"; // Font dosyası ve yolunu tanımlıyoruz
$golge = "true"; // Resme gölge eklemek istiyosanız "true" istemiyorsanız boş
 
$text = $_GET['text'];
if(empty($text)) {
$metin = "Metin yazin!"; }
else {
$metin = "$text"; }
 
header('Content-type: image/png');
$resim_yaz = imagecreatefrompng("$resim");
 
// Yazı ve gölgenin renk hex kodlarını belirliyoruz
$gri = imagecolorallocate($resim_yaz, 170, 170, 170);
$siyah = imagecolorallocate($resim_yaz, 0, 0, 0);
 
if ($golge == "true") {
imagettftext($resim_yaz, 16, 15, 59, 222, $gri, $font, $metin); }
imagettftext($resim_yaz, 16, 15, 58, 221, $siyah, $font, $metin);
 
imagepng($resim_yaz);
imagedestroy($resim_yaz);
 
?>

Bu kodları bir form ile kullanarak hoş bir script ortaya cıkarmış caner.

 
<form action="resimyaz.php" enctype="application/x-www-form-urlencoded" method="get">
<input name="text" size="15" type="text" style="border: 1px solid #666666" onclick="this.value=''"/>
<input type="submit" value="Resim yaz" />
</form>
 

Kodun çalışan örneği burada:

Scriptin hazır haline buradan ulaşabilirsiniz.

Kaynak: Egonomik

Mayıs 15, 2009 Kategorisi: Php   Devamını Oku
12