Genellikleri verilerimizi kullanım kolaylığı açısından dizilerde tutarız .
burada bir cache sistemi kullanmak istersek karşımıza dizileri .txt belgesine yazdırma problemi çıkar.
işte tam burada serialize ve unserialize fonksiyonları yardıma yetişir.
hemen örnek yapalım
$dizi = array("1","2","3","4"); // dizimizi oluşturduk şimdi bu diziyi text dosyasına kaydedicez ve oradan okuyup çalıştırıcaz.
$metin = serialize($dizi);
$islem=fopen("cache/dizi.txt",'a+')
fputs($islem,$metin);
fclose($islem); // kayıt işlemimiz bitti şimdi okuyacağız
$dizi2 = unserialize(file_get_contents("dizi.txt")); // evet dosyayı okuduk ve içeriği otomatik olarak diziye çevirdik
echo $dizi[1];
Bazen gerekli olabilir hersunucuda CURL olmayabiliyor.
Pek bilinmeyen PHP güzelliklerinden birini keşfettim.
$postverisi = http_build_query( array( 'param1' => 'veri1','param2' => 'veri2'));
$secenekler = array('http' =>array('method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $postverisi));
$baglam = stream_context_create($secenekler);
$sonuc = file_get_contents('http://adres.php', false, $baglam);
Yaptığım bir sitede şöyle bir durumla karşılaştım.
müşterimin online kataloğu dinamik bir yapıda yani müşteri isterse yeni sayfalar ekleyip çıkartabiliyor.Bu seferde şöyle bir sorun çıktı kataloğun tüm sayfalarını zipleyip indirme!
imdadıma burada detayları anlatılan “dzip” ve “dunzip” sınıfları yetişti .
PHP’nin glob() fonksiyonu ile kolayca .png doyalarını listeleyip dzip sınıfı ile zipleyip otomatik olarak indirilmesini sağladım.
Continue reading ‘PHP ile online kataloğu, online zip yapıp otomatik download ettirme şeysi!’
function ihb($metin) {
$lower_arr = array("I"=>"ı","i"=>"İ");
$metin=strtr($metin,$lower_arr);
return mb_convert_case($metin, MB_CASE_TITLE, "UTF-8");
}
bir projede twitter tarzı “şu kadar zaman önce” gibi zaman göstermek istedik . bunun içinde basit bir fonksiyon yazdım.
function timeAgo($tm, $rcs=0){
$cur_tm = time(); $dif = $cur_tm-$tm;
$pds = array('saniye önce','dakika önce','saat önce','gün önce','hafta önce','ay önce','yıl önce','decade önce');
$lngh = array(1,60,3600,86400,604800,2630880,31570560,315705600);
for($v = sizeof($lngh)-1; ($v >= 0)&&(($no = $dif/$lngh[$v])<=1); $v--); if($v < 0) $v = 0; $_tm = $cur_tm-($dif%$lngh[$v]);
$no = floor($no); if($no <> 1) $pds[$v] .=''; $x=sprintf("%d %s ",$no,$pds[$v]);
return ($no < 1 ? "az önce" : $x);
}
Yeni başladığım bir okul sitesinde meb haberlerini göstermem gerekiyordu ancak meb’in sunduğu haber batları tasarımını kötü derecede bozuyordu. bende meb’den kendim xml verilerini aldım aşağıdaki kodla direk mebden xml verileri okuyup yazdırabilirsiniz ben meb için kullandım ama farklı siteler içinde kullanılabilir tabiki.
$xml=simplexml_load_file('http://www.meb.gov.tr/haberler/xml/mebrss2.xml');
$i=0;
$a=0;
foreach($xml as $rss){
$title= $rss->item->title ;
foreach($rss->item as $bolum){
if($a<5) { // kaç haber yayınlamak istiyorsak bu kısmı ona göre değiştirin
$title2= $bolum->title;
$description=$bolum->description ;
$link= $bolum->link;
echo '<div>';
echo '<h2>'.$title2[$i] ."</h2>"; //Başlık Aldık
echo '<p><a href="'.$link[$i].'" target="_blank">Haber Detayları</a></p>'; //Link Aldık..
echo "</div>";
}
$a++;
}
$i++;
}
Geliştirmekte olduğumuz bir projede Delphi’nin Tdatetime formatını PHP unixtime ‘a çevirmem gerekiyordu. Daha önce karşılaşmadığım bir durum du uzun aramalar sonucunda gerekli kod parçasını bulamadım iş başa düştü kendim çözüm bulmak zorunda kaldım.Başkasıda benim geçtiğim yollardan geçmesin diye burada paylaşıyorum
function tarih($t=null){
date_default_timezone_set('Europe/Istanbul');
$pul = ($t==null ? time() : $t);
$gunler = array('Pazar', 'Pazartesi', 'Salı', 'Çarşamba', 'Perşembe',
'Cuma', 'Cumartesi');
$aylar = array('', 'Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran',
'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık');
return date("d ", $pul).$aylar[date("n", $pul)].",".date("Y", $pul);
}
$t=40399;// Delphi Tdatetime değeri
$t = (($t-25569)*86400-3600);
$t = tarih($t);//burada unix e çevrilmiş değerimizi şekillendiriyoruz "09 Ağustos,2010"
// değerini verecek tarih formatını istediğiniz şekilde düzenleyebilirsiniz.
echo $t;
Çok gerekli olmasada bazen mysql yedeklerimizi kendimiz almamız gerekir. Bukod bu işi görüyor
Continue reading ‘PHP ile MYSQL veritabanımızı yedek alıp MAİL yollama !’
” eregi” fonksiyonu ile koylayca email kontrolü yapabiliriz.
$email = "mucahityenen@gmail.com";
if (!eregi ("^([a-z0-9_]|\-|\.)+@(([a-z0-9_]|\-)+\.)+[a-z]{2,4}$", $email))
die ("E-Mail Adresiniz Geçersiz");
Mysql deki rand() fonksiyonu ile bu işlem rahatlıkla yapılabilir.
SELECT * FROM `ogrenciler` ORDER BY RAND() limit 10