25 Şubat 2014 Salı

Php ile Özel Karakterleri Düzeltme

Php ile bir yazı içerisinde bulunan özel karakterleri değiştirmek için bir fonksiyon yazalım. Bu fonksiyon parametre olarak yazıyı (text) almakta ve geriye düzeltilmiş yazıyı döndürmektedir.

/*
* @param string $text
*
* @return string $text
*/

public function ozelKarakterleriDuzelt($text) {

/*
* Özel karakterlerin karşılıkları
*
* bir dizide toplanır
*/
    $specialLetters = array(

        'a' => array('á', 'à', 'â', 'ä', 'ã'),

        'A' => array('Ã', 'Ä', 'Â', 'À', 'Á'),

        'e' => array('é', 'è', 'ê', 'ë'),

        'E' => array('Ë', 'É', 'È', 'Ê'),

        'i' => array('í', 'ì', 'î', 'ï', 'ı'),

        'I' => array('Î', 'Í', 'Ì', 'İ', 'Ï'),

        'o' => array('ó', 'ò', 'ô', 'ö', 'õ'),

        'O' => array('Õ', 'Ö', 'Ô', 'Ò', 'Ó'),

        'u' => array('ú', 'ù', 'û', 'ü'),

        'U' => array('Ú', 'Û', 'Ù', 'Ü'),

        'c' => array('ç'),

        'C' => array('Ç'),

        's' => array('ş'),

        'S' => array('Ş'),

        'n' => array('ñ'),

        'N' => array('Ñ'),

        'y' => array('ÿ'),

        'Y' => array('Ÿ'),

        'G' => array('Ğ'),

        'g' => array('ğ')

    );


/*
* İç içe döngü ilse yazı içindeki özel karakterler
*
* karşılıkları ile değiştirilir
*/
    foreach ($specialLetters as $letter => $specials) {

        foreach ($specials as $s) {

            $text = str_replace($s, $letter, $text);

        }

    }

    return $text;

}



22 Şubat 2014 Cumartesi

Php ile Web Sayfasının Yüklenme Süresini Ölçme

Bir web sayfasının yüklenmesi için geçen süre, sayfanın browser üzerinde html olarak görüntülenmesi için geçen süredir. Sayfanın yüklenme süresini hesaplamak için iki değişkene ihtiyacımız var. Bunlar sayfanın yüklenmeye başladığı an (startTime) ve sayfanın tamamen yüklendiği  an (stopTime) dır. startTime değişkeni sayfanın başına, stopTime değişkeni ise sayfanın sonuna yazılır. Bu ikisi arasındaki zaman farklı (time) bize yüklenme süresini verir.

   $startTime = microtime(true);

/*
* Sayfadaki kodlar
*
* bu araya yazılmalıdır
*/

   $stopTime = microtime(true);

   $time = $stopTime - $startTime;

/*
* İstatistik tutuyorsanız
* time değişkeni 
* veritbanına kaydedilebilir
*/


19 Şubat 2014 Çarşamba

Php ile Yazı İçindeki Rakamları Temizleme

Php ile bir yazı içinde geçen rakamları temizlemek için bir fonksiyon yazalım. Fonksiyon parametre olarak bir string alıyor ve rakamlardan temizlenmiş yazıyı geriye döndürüyor.

/*
* @param string $text
*
* @return string $text
*/

public function rakamTemizle($text) {

    $search = array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9");

    $text = str_replace($search, "", $text);

    return $text;

}


18 Şubat 2014 Salı

Php ile Facebook URL Decode Etme

Dünyanın en büyük sosyal ağı Facebook'ta her gün binlerce, milyonlarca resim ve video paylaşılıyor. Facebook'ta paylaşılan videoları çekmek için bir uygulama yazıyorsanız, videonun linkinin (URL) şifrelenmiş olduğunu göreceksiniz. Video linkinde geçen özel karakterleri çözümlemek için bir fonksiyon yazalım. Bu fonksiyona şifrelenmiş URL argüman olarak verildiğinde geriye dönen değer anlaşılır bir URL olacaktır.

/*
* @param string $url
*
* @return string $url
*/
public function facebook_encode_replace($url) {

    $source = array("\u00253A", "\u00252F", "\u00253F", "\u00253D", "\u002526", "\u00257B", "\u00257D", "\u002522", "\u00252C", "\u00255C", "\u00255D", "\u00255B");

    $replace = array(":","/","?","=","&","{","}","\"",",","\\","[","]");

    $url = str_replace($source, $replace, $url);

    return $url;

}

Php ile Sayı Basamaklarını Formatlı Şekilde Gösterme

Php ile bir sayıyı binler, milyonlar, milyarlar basamakları formatlı bir şekilde göstermek için bir fonksiyon yazalım. Yazacağımız bu fonksiyon, 1209045678 sayısını 1.209.045.678 şeklinde basamakları formatlanmış olarak geriye döndürecektir.

/*
* @param int $number
* @return string
*/
public function basamakFormatla($number) {

    $format = '';

    $i = 0;

    while ($number > 0) {

        $first = $number % 1000;

        $number = ($number - $first) / 1000;

        if ($i == 0) {

            if ($first < 10) {

                $format = '00' . $first;

            } else if ($first < 100) {

                $format = '0' . $first;

            } else {

                $format = $first;

            }

        } else {

            $format = $first . '.' . $format;

        }

        $i++;

    }

    return $format;

}

/*
* Sayımız 45069702 için fonksiyonu
* aşağıdaki gibi çağırıp sonucu
* ekranda görebiliriz
*/

echo basamakFormatla(45069702);

// Sonuç aşağıdaki gibi olacaktır

45.069.702

//


16 Şubat 2014 Pazar

Codeigniter ile Bir Tablodan Veri Çekme

Codeigniter ile veritabanındaki herhangi bir tablodan veri çekmek için bir fonksiyon yazalım. Bu fonksiyon parametre olarak çekilecek kayıt sayısını (limit) alsın. Ayrıca fonksiyon son eklenen kayıtları (order_by) getirsin. Bu durumda Model'imiz ve bu model içindeki fonksiyonumuz aşağıdaki gibi olacaktır.
/*
* Model ismi : Video
* Fonksiyon ismi : getVideos
*/

class Video extends CI_Model {

   public function getVideos($limit) {

        $this->db->select('*');

        $this->db->from('videos');

        $this->db->where('video_status', '1');

        $this->db->order_by('id', 'desc');

        $this->db->limit($limit);


        return $this->db->get()->result();
    }


}

Yazdığımız bu fonksiyon geriye dizi döndürecektir. Bu dizinin her bir elemanı bir Obje'dir. Controller içinde bu fonksiyonu çağırmak için öncelikle yazdığımız Model sınıfını yüklememiz gerekir. Fonksiyondan geriye dönen değeri bir dizi değişkenine atayıp, dönen veriyi göstermek istediğimiz View'e parametre olarak vermeliyiz.

class Show extends CI_Controller {


   public function videos(){

     $this->load->model('video');

     $limit = 100;

     $data['videos'] = $this->video->getVideos($limit);

     if( $data != NULL ) {

       $this->load->view('show_videos', $data);

     }

}

13 Şubat 2014 Perşembe

PHP ile Youtube Linkinden Video ID'si Bulma

Dünyanın en büyük video içerik sitesi olan Youtube'daki videoların ID'lerini herhangi bir youtube linkinden almak için bir fonksiyon tanımlayalım.

/*
*
* @param string $url
*
* @return string
*
*/
public function getVideoIdFromURL($url) {

        $url_string = parse_url($url, PHP_URL_QUERY);

        parse_str($url_string, $args);

        if ( isset($args['v']) ) {

              return $args['v'];

        } else {

             return '';
        }

}


Fonksiyon parametre olarak bir URL almakta ve bu URL Youtube'a ait ise videonun ID'sini, değil ise boş string döndürmektedir.