Bu dersimde sizlere css3 ile birlikte gelen animation özelliği ve türevlerini göstereceğim.. Yararlı olması dileğiyle..
Okumaya devam et “CSS3 – Animation Özellikleri”Yazar: Tayfun Erbilen
Css, JavaScript ve Resim Dosyalarında Tarayıcı Önbelleği
Bildiğiniz gibi tarayıcı bu dosyaları sürekli okumamak için önbelleğe alıyor.. Dosyalarda bir değişiklik yapsak bile, kullanıcının bunu görebilmesi için ya bir süre beklemesi gerekiyor ya da ctrl + shift + r ile önbelleği temizleyip yenilemesi gerekiyor.. Hal böyle olunca çoğu kullanıcı yaptığınız güncellemleri çok geç görüyor buda projede sorunlara yol açabiliyor.. Bu yüzden küçük bir hile yaparak bu sorunu çözebiliriz.. Normal şartlarda çağırdığımız css, js ya da resim dosyaları şu şekildedir;
<!-- Style --> <link rel="stylesheet" href="/style.css" type="text/css" media="screen" /> <!-- Script --> <script type="text/javascript" src="/script.js"> <!-- Resim --> <img src="/resim.jpg" alt="" />
Şimdi bu kodları şöyle değiştirelim;
<!-- Style --> <link rel="stylesheet" href="/style.css?v=1" type="text/css" media="screen" /> <!-- Script --> <script type="text/javascript" src="/script.js?v=1"> <img src="/resim.jpg?v=1" alt="" />
Sonuna getirdiğimiz ?v=1 ifadesi illaha bu şekilde tanımlanmak zorunda değil.. Yani ?a=1 gibi de tanımlanabilir.. Ama bu çoğu sitenin kullandığı genel bir tanım olduğu için bende bu şekilde kullanıyorum.. Bir nevi versiyonu temsil ediyor ???? Böyle kaydettiğimizde, artık bu dosyalarda herhangi bir değişiklik yaptığımızda kullanıcı anlık olarak görecektir.
Güncelleme
Eğer bu şekilde doğru sonucu vermiyorsa php’nin time fonksiyonunu kullanabilirsiniz.
<!-- Style --> <link rel="stylesheet" href="/style.css?v=" type="text/css" media="screen" /> <!-- Script --> <script type="text/javascript" src="/script.js?v="></script> <!-- Resim --> <img src="/resim.jpg?v=" alt="" />
Verot.net Çoklu Upload Sorunu
Sizde benim gibi resim upload işlemleri için verot.net’de bulunan upload sınıfını kullanıyorsanız bu sorun (daha doğrusu sorunda denemez buna) sizinde başınıza gelmiştir.. Normal tekli yüklemede sorun yok ama çoklu yüklemede? işte orada bir mantıksızlığa düşüyoruz.. Çözümü ise şöyle.. Önce html yapımız şöyle olsun;
<form method="post" action="" enctype="multipart/form-data"> <input type="file" name="resim[]" multiple /> <input type="submit" name="submit" value="Yükle" /> </form>
Bu şekilde dosyaları birden fazla seçip yükle dediğimizde ise aşağıdaki php kodumuz çalışacak;
$images = array(); foreach ($_FILES['resim'] as $k => $l) { foreach ($l as $i => $v) { if (!array_key_exists($i, $images)) $images[$i] = array(); $images[$i][$k] = $v; } } foreach ($images as $image){ $handle = new Upload($image); if ($handle->uploaded) { /* Resmi Yeniden Adlandır */ $handle->file_new_name_body = substr(base64_encode(uniqid(true)), 0, 20); /* Resmi Yeniden Boyutlandır */ $handle->image_resize = true; $handle->image_x = 150; $handle->image_ratio_y = true; /* Resim Yükleme İzni */ $handle->allowed = array('image/*'); /* Resmi İşle */ $handle->Process(realpath("../")."/upload/resim/"); if ($handle->processed) { echo 'ok\n'; } else { echo $handle->error; } $handle-> Clean(); } else { echo $handle->error; } }
Olay bu şekilde çözüm buluyor, böylece çoklu yükleme işlemini kolayca yapabiliyorsunuz.. Kolay gelsin.
Db Show Sınıfı (php)
Çoğu zaman oluşturduğum tabloların ve tablolara ait alanların isimlerini unutuyorum.. Girip phpmyadmin’e bakmakta zor geliyor ???? Bundan dolayı kendime veritabanıma ait tablo ve alanları görebileceğim küçük bir sınıf hazırladım, sizlerle de paylaşayım işinizi görecektir eminim (Özellikle benim gibi üşengeç biriyseniz)
Not: Sınıf hazırlamakta yeniyimdir, ondan dolayı sınıfı inceleyipte artislik yapacaklara şeker verilmiyor bilginiz olsun ????
İndir;
http://yadi.sk/d/Kfnwk7B_2_-dd
Metodlar ve Kullanımları;
show_tables()
Veritabanınıza ait tabloları listeler.. true değerini parametre olarak gönderirseniz aşağıdaki gibi html çıktısı alırsınız, göndermezseniz dizi halinde geriye değer döndürür.
show_fields()
Tabloya ait alanları listeler.. 2 parametre alır, tablo adı ve html çıktısı olacaksa 2. parametre olarak true değeri.. Eğer 2. parametre girilmez ise dizi olarak geriye değer döndürülür.. 2. parametre girilir ise aşağıdaki gibi çıktı verir;
show_tables_and_fields()
Tablo ve tabloya ait alanları bir arada gösterir. Sadece html çıktısı verir, yukarıdaki görsellerin birleşmiş halidir.
Örnek Kullanımı;
<?php // sınıfı dahil edelim require "db.show.class.php"; // sınıfı başlatalım $db_show = new db_show("host","user","pass","db"); // tabloları dizi halinde görelim $db_show->_dump( $db_show->show_tables() ); // tabloya ait alanları dizi halinde görelim $db_show->_dump( $db_show->show_fields("tablo_adi") ); // tablo ve alanları bir arada html olarak görelim echo $db_show->show_tables_and_fields(); // sadece tabloları html olarak görelim echo $db_show->show_tables(true); // sadece tabloya ait alanları html olarak görelim echo $db_show->show_fields("tablo_adi", true); ?>
Css ile Ok Şekilleri Oluşturmak
http://codepen.io/tayfunerbilen/pen/KwjqC
Bazen css ile ok şekilleri oluşturmanız gerekebilir.. Bunun için birkaç yöntem paylaşacağım, işinize yarayacaktır eminim.
Demolar
http://codepen.io/tayfunerbilen/pen/KwjqC
Sağ tarafın tamamını kaplayan bir ok için gerekli örnek;
Google Analytics Verileri ve Grafiksel Gösterimi
Dikkat: Ne yazık ki bu ders güncelliğini yitirmiştir. Daha güncel ders için, aşağıdaki adresleri deneyin.
Php Yönlendirme Fonksiyonu
Aslında zaten yönlendirme işlemi için header() fonksiyonunu kullanıyoruz. Ancak duruma bağlı olarak öze bir fonksiyonda daha hızlı kullanım kolaylığı elde edebiliriz. Aşağıdaki örnekte olduğu gibi.
<?php function go ($url, $time = 0){ if ($time) header("Refresh: {$time}; url={$url}"); else header("Location: {$url}"); } // Kullanımı go("siteadi.com", 10); // Ya da go("siteadi.com");
Php Türkçe Tarih Fonksiyonu
PHP’de türkçe tarih ve zaman formatı için setlocale()
ve strftime()
fonksiyonlarını kullanabiliriz. Örnek vermek gerekirse;
// Türkçe olarak ayarla setlocale(LC_TIME, 'tr_TR'); // Tarihi Ekrana Yazdır echo strftime('%d %B %Y, %A - %T'); // Çıktı: 23 Aralık 2017, Cumartesi - 12:15:00
strftime()
için girilecek formatlara şuradan bakabilirsiniz:
http://php.net/manual/tr/function.strftime.php
Php BBKod Fonksiyonu
Kendi hazırlamış olduğum bbkod fonksiyonu.
<?php function bbkod($par) { $bul = array( '#\[youtube=(.*?)\]#', '#\[b\](.*?)\[/b\]#' ); $degistir = array( '<iframe width="100%" height="315" src="http://www.youtube.com/embed/$1" frameborder="0" allowfullscreen></iframe>', '<strong>$1</strong>' ); return preg_replace($bul, $degistir, $par); } // Kullanımı $string = "Bu bir [b]kalın yazı[/b]dır.. Ve buda bir youtube videosudur; [youtube=9bZkp7q19f0]"; echo bbkod($string);
Php Sef Link Fonksiyonu
Bu fonksiyon ile kullanıcı dostu url’ler oluşturmak için türkçe metinlerinizi derleyebilirsiniz. Tek yapmanız gereken fonksiyona parametre olarak metninizi göndermeniz. Bu sayede dönen değer url’de kullanıma uygun ve düzgün bir değer olacaktır.
function permalink($str, $options = array()) { $str = mb_convert_encoding((string)$str, 'UTF-8', mb_list_encodings()); $defaults = array( 'delimiter' => '-', 'limit' => null, 'lowercase' => true, 'replacements' => array(), 'transliterate' => true ); $options = array_merge($defaults, $options); $char_map = array( // Latin 'À' => 'A', 'Á' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A', 'Å' => 'A', 'Æ' => 'AE', 'Ç' => 'C', 'È' => 'E', 'É' => 'E', 'Ê' => 'E', 'Ë' => 'E', 'Ì' => 'I', 'Í' => 'I', 'Î' => 'I', 'Ï' => 'I', 'Ð' => 'D', 'Ñ' => 'N', 'Ò' => 'O', 'Ó' => 'O', 'Ô' => 'O', 'Õ' => 'O', 'Ö' => 'O', 'Ő' => 'O', 'Ø' => 'O', 'Ù' => 'U', 'Ú' => 'U', 'Û' => 'U', 'Ü' => 'U', 'Ű' => 'U', 'Ý' => 'Y', 'Þ' => 'TH', 'ß' => 'ss', 'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'ae', 'ç' => 'c', 'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i', 'ð' => 'd', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o', 'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ő' => 'o', 'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ü' => 'u', 'ű' => 'u', 'ý' => 'y', 'þ' => 'th', 'ÿ' => 'y', // Latin symbols '©' => '(c)', // Greek 'Α' => 'A', 'Β' => 'B', 'Γ' => 'G', 'Δ' => 'D', 'Ε' => 'E', 'Ζ' => 'Z', 'Η' => 'H', 'Θ' => '8', 'Ι' => 'I', 'Κ' => 'K', 'Λ' => 'L', 'Μ' => 'M', 'Ν' => 'N', 'Ξ' => '3', 'Ο' => 'O', 'Π' => 'P', 'Ρ' => 'R', 'Σ' => 'S', 'Τ' => 'T', 'Υ' => 'Y', 'Φ' => 'F', 'Χ' => 'X', 'Ψ' => 'PS', 'Ω' => 'W', 'Ά' => 'A', 'Έ' => 'E', 'Ί' => 'I', 'Ό' => 'O', 'Ύ' => 'Y', 'Ή' => 'H', 'Ώ' => 'W', 'Ϊ' => 'I', 'Ϋ' => 'Y', 'α' => 'a', 'β' => 'b', 'γ' => 'g', 'δ' => 'd', 'ε' => 'e', 'ζ' => 'z', 'η' => 'h', 'θ' => '8', 'ι' => 'i', 'κ' => 'k', 'λ' => 'l', 'μ' => 'm', 'ν' => 'n', 'ξ' => '3', 'ο' => 'o', 'π' => 'p', 'ρ' => 'r', 'σ' => 's', 'τ' => 't', 'υ' => 'y', 'φ' => 'f', 'χ' => 'x', 'ψ' => 'ps', 'ω' => 'w', 'ά' => 'a', 'έ' => 'e', 'ί' => 'i', 'ό' => 'o', 'ύ' => 'y', 'ή' => 'h', 'ώ' => 'w', 'ς' => 's', 'ϊ' => 'i', 'ΰ' => 'y', 'ϋ' => 'y', 'ΐ' => 'i', // Turkish 'Ş' => 'S', 'İ' => 'I', 'Ç' => 'C', 'Ü' => 'U', 'Ö' => 'O', 'Ğ' => 'G', 'ş' => 's', 'ı' => 'i', 'ç' => 'c', 'ü' => 'u', 'ö' => 'o', 'ğ' => 'g', // Russian 'А' => 'A', 'Б' => 'B', 'В' => 'V', 'Г' => 'G', 'Д' => 'D', 'Е' => 'E', 'Ё' => 'Yo', 'Ж' => 'Zh', 'З' => 'Z', 'И' => 'I', 'Й' => 'J', 'К' => 'K', 'Л' => 'L', 'М' => 'M', 'Н' => 'N', 'О' => 'O', 'П' => 'P', 'Р' => 'R', 'С' => 'S', 'Т' => 'T', 'У' => 'U', 'Ф' => 'F', 'Х' => 'H', 'Ц' => 'C', 'Ч' => 'Ch', 'Ш' => 'Sh', 'Щ' => 'Sh', 'Ъ' => '', 'Ы' => 'Y', 'Ь' => '', 'Э' => 'E', 'Ю' => 'Yu', 'Я' => 'Ya', 'а' => 'a', 'б' => 'b', 'в' => 'v', 'г' => 'g', 'д' => 'd', 'е' => 'e', 'ё' => 'yo', 'ж' => 'zh', 'з' => 'z', 'и' => 'i', 'й' => 'j', 'к' => 'k', 'л' => 'l', 'м' => 'm', 'н' => 'n', 'о' => 'o', 'п' => 'p', 'р' => 'r', 'с' => 's', 'т' => 't', 'у' => 'u', 'ф' => 'f', 'х' => 'h', 'ц' => 'c', 'ч' => 'ch', 'ш' => 'sh', 'щ' => 'sh', 'ъ' => '', 'ы' => 'y', 'ь' => '', 'э' => 'e', 'ю' => 'yu', 'я' => 'ya', // Ukrainian 'Є' => 'Ye', 'І' => 'I', 'Ї' => 'Yi', 'Ґ' => 'G', 'є' => 'ye', 'і' => 'i', 'ї' => 'yi', 'ґ' => 'g', // Czech 'Č' => 'C', 'Ď' => 'D', 'Ě' => 'E', 'Ň' => 'N', 'Ř' => 'R', 'Š' => 'S', 'Ť' => 'T', 'Ů' => 'U', 'Ž' => 'Z', 'č' => 'c', 'ď' => 'd', 'ě' => 'e', 'ň' => 'n', 'ř' => 'r', 'š' => 's', 'ť' => 't', 'ů' => 'u', 'ž' => 'z', // Polish 'Ą' => 'A', 'Ć' => 'C', 'Ę' => 'e', 'Ł' => 'L', 'Ń' => 'N', 'Ó' => 'o', 'Ś' => 'S', 'Ź' => 'Z', 'Ż' => 'Z', 'ą' => 'a', 'ć' => 'c', 'ę' => 'e', 'ł' => 'l', 'ń' => 'n', 'ó' => 'o', 'ś' => 's', 'ź' => 'z', 'ż' => 'z', // Latvian 'Ā' => 'A', 'Č' => 'C', 'Ē' => 'E', 'Ģ' => 'G', 'Ī' => 'i', 'Ķ' => 'k', 'Ļ' => 'L', 'Ņ' => 'N', 'Š' => 'S', 'Ū' => 'u', 'Ž' => 'Z', 'ā' => 'a', 'č' => 'c', 'ē' => 'e', 'ģ' => 'g', 'ī' => 'i', 'ķ' => 'k', 'ļ' => 'l', 'ņ' => 'n', 'š' => 's', 'ū' => 'u', 'ž' => 'z' ); $str = preg_replace(array_keys($options['replacements']), $options['replacements'], $str); if ($options['transliterate']) { $str = str_replace(array_keys($char_map), $char_map, $str); } $str = preg_replace('/[^\p{L}\p{Nd}]+/u', $options['delimiter'], $str); $str = preg_replace('/(' . preg_quote($options['delimiter'], '/') . '){2,}/', '$1', $str); $str = mb_substr($str, 0, ($options['limit'] ? $options['limit'] : mb_strlen($str, 'UTF-8')), 'UTF-8'); $str = trim($str, $options['delimiter']); return $options['lowercase'] ? mb_strtolower($str, 'UTF-8') : $str; } // Kullanımı $deger = "Bu Türkçe Bir Yazıdır"; echo permalink($deger); $deger = "Συχνές Ερωτήσεις"; echo permalink($deger);
Eğer kullanımı ile ilgili daha fazla detay isterseniz yorumlar bölümünden bana sorabilirsiniz.