in examples

Milli Piyango Çekiliş Sonuçları Bot Yapımı

PHP file_get_contents fonksiyonunu kullanarak Türkiye Milli Piyango İdaresi sitesinden Milli Piyango Çekiliş Sonuçları verileri çekme fırsatı yakalamış olacağız aşağı da aşamalarını anlatarak kısa bilgiler vermeye çalışacağım.

ilk olarak file_get_contents fonksiyonu ile bağlantı oluşturalım.

Yukarıdaki gibi basit bir kod parçasıyla siteye bağlantı sağladık ve siteden gelen veriyi “results” değişkenimize atadık.

bu fonksiyonla Türkiye Milli Piyango İdaresi çektiğimiz ve “results” değişkenimize atadığımız verimiz stdClass olarak geliyor ve array dönüştürmek için kullanacağız.

burada objectToArray fonksiyonumuzu ile gelen veriyi dönüştürüyoruz array’a ve tekrar “results” değişkenimize atıyoruz.

ekrana yazdırmak için aşağıdaki kodları kullanıyoruz.

Ayrıca dikkat edilmesi gereken ilk nokta Türkiye Milli Piyango İdaresi sitesine bağlantı sağlarken URL üzerinde tarihi gönderiyoruz tarih formatı yıl, ay, gündür arada hiç bir karakter kullanmıyoruz.

Örnek
2015 / 08 / 26 için 20150826 olarak gönderiyoruz çekmek istediğiniz tarihin bulunduğu URL’yi belirtikten sonra istediğiniz çekiliş tarihlerinin verilerine rahatlıkla ulaşmış olursunuz.

Kolay Gelsin.

Demo

Kaynak Kodlar

Lig Puan Durum Botu Yapımı

PHP cURL fonksiyonunu kullanarak Türkiye Futbol Federasyonu sitesinden lig puan durumlarının verileri çekme fırsatı yakalamış olacağız aşağı da aşamalarını anlatarak kısa bilgiler vermeye çalışacağım.

ilk olarak cURL için bağlantı fonksiyonumuzu oluşturalım.

Yukarıdaki gibi basit bir fonksiyon yapısı ile siteye bağlantı sağladık bağlantımızın yandex üzerinden yaptığımızı ve böylece referans sitemizi yandex.com.tr diye tanımladık. İsterseniz bunu Google olarak düzenleyebilirsiniz.

Yukarıdaki fonksiyonla Türkiye Futbol Federasyonun sitesine bağlanıyoruz sonra sitesinin içinde yer alan tablo da bize lazım olan verilerin bulundukları alanların değerlerinin desenlerini preg_match_all ile hazırlayıp çekiyoruz gelen verileri de for döngüsüyle array’da topluyoruz.

Spor Toto Süper Lig için puan durumu adresi
http://www.tff.org/Default.aspx?pageID=198

“cleanBring” Fonksiyonuyla puan durumun olduğu adres ve dönme sayısını verdikten sonra sonuçları results değişkenimize aktarıp ekrana yazdırmak kalıyor.

Ayrıca diğer liglerin puan durumunu çekmek de zor olmayacak yukarıdaki kod örneğiyle yapacağınız işlemler
Türkiye Futbol Federasyonun sitesinde puan durumu adresleri ve tablo değerlerinin desenlerini preg_match_all ile oluşturup “cleanBring” fonksiyonuna çekmek istediğiniz puan durumun bulunduğu URL ve çekilecek adet sayısını belirtikten sonra tüm puan durumlarına rahatlıkla ulaşmış olursunuz.

Kolay Gelsin.

Demo

Kaynak Kodlar

Facebook’un açığa çıkardığı algı zedelenmeleri

Artık herkes Facebook’ta oturuyor. Global bir köy gibi adeta. 7’den 70’e hepimizin bir hesabı var. Yani kimse gözden kaybolamaz. Zaten kimsenin de gözden kaybolmak gibi bir derdi yok. Aksine hepimiz göz önünde olmak istiyoruz. Şimdilerde senin hayatın ayrı, benim hayatım ayrı da değil. Biz aynı evde yaşıyoruz ve birbirimizin içini dışını biliyoruz.

Facebook kullanımı tümüyle olumsuzlanacak bir davranış biçimi değil. Nasıl kullanıldığını anlamak gerekir. Bir sosyal paylaşım platformu ya da kendini ifade etme aracı olarak bakıldığında psiko-sosyal bir gereksinimi karşıladığı söylenebilir. Birey, kimsenin bilmesinde sakınca görmediği duygu ve düşüncelerini arkadaşlarıyla, hatta herkesle paylaşabilir. Bunda bir sorun yok. Üstelik bu, kendinize ait bir gazete ya da dergi sayfasından yayın yapma ve sosyalleşme hazzı bile verebilir. Benim için öyledir örneğin. Kendi sayfamı mizahi, siyasi, edebi v.b. düşüncelerimi paylaştığım bir dergi sayfası gibi görürüm.

Sosyal medyanın toplumsal olaylara duyarlılık sağlama ve ortak tepki örgütlenmesi yaratma bağlamında da önemli bir rolü var. Bunu yakın geçmişte Gezi Direnişi sırasında görmüştük. Dünyada da bunun benzer örneklerine rastlandı. Bu durumdan oldukça rahatsız olan AKP Hükümeti de biliyorsunuz ki internet kullanımı ve sosyal medya hesapları konusunda fişleme ve sansüre yönelik demokrasi dışı bir takım yasalar çıkarıyor.

Sosyal medya üzerinde değişik boyutlarda analizler yapılabilir. Bu, sistematik ve bilimsel araştırmalar gerektiren bir durumdur. Benim üzerinde durmak istediğim, kişisel gözlemlerime dayanan bazı eleştiriler. Eğrisiyle doğrusuyla hepimiz bir biçimde kullanıyoruz Facebook’u. Ama bazı kullanım biçimleri kanımca rahatsız edici ve eleştiriyi hak eder türden. Birkaç örnek vereyim:

– Bir eğlenceye ya da sosyal aktiviteye katılıyorsunuz. Henüz eğlence bitmemişken dosta düşmana çok eğlendiğinizi duyuruyorsunuz. Merak ediyorum bu insanlar gerçekten eğleniyor mu? Yoksa amaç, ”bakın ben sosyal bir varlığım, beni görün” mesajı mı?

– Patronunuza ya da iş arkadaşınıza çok kızdınız ama onunla çatır çatır kavga edemediğiniz için mi yuvarlak ve genellemeci mesajlarla duvarınızdan verip veriştiriyorsunuz? Tatmin edici oluyor mu bari?

– Az önce birlikte bir kahve içmişsiniz. Henüz ortada belki de elle tutulur bir şey yok ama ”ilişkisi yok” durumunuz hemencecik ”ilişkisi var” oluveriyor. Bu durumunuzu, hangi ruh halinizle ilişkilendiriyorsunuz?

– Sevdiğiniz bir insanı veya yakınınızı kaybediyorsunuz. Aynı gün bunu deklare etme metanetini, gücünü kendinizde nasıl buluyorsunuz? Çok acı çektiğiniz için bunu paylaşarak acınızı mı hafifleteceğinizi düşünüyorsunuz yoksa cenazeyi kalabalık mı kaldırmak istiyorsunuz?

– Hadi ölen öldü, paylaşan bir gaflette bulunup paylaştı. Peki bunu ‘beğen’enlere ne demeli? Neyi beğendiniz acaba?

– Ölmüş bir insanın doğal olarak açık kalmış sayfasına yorumlar yazarak onunla bir tür iletişim mi kuruyorsunuz, yoksa ruhlar alemine mesaj mı yolluyorsunuz? Yok eğer ortak arkadaşlarınızın bu yorumları görmesini istiyorsanız, neden birbirinize onunla ilgili duygularınızı iletmiyorsunuz da bir ölüyle tek taraflı konuşmayı tercih ediyorsunuz? Anlıyorum, belki üzgünsünüz ama davranış biçiminiz bana pek sağlıklı gelmedi.

M. Devran Özer

Codeigniter, HMVC ve Smarty Üçü Bir Arada

Merhabalar , Codeigniter, HMVC ve Smarty Template kullanmak isteyen ama entegrasyonu hakkında internet üzerinde doğru düzgün bir kaynak bulamayan arkadaşlara bu yazım.

İndirme

Yukarıdaki Linklerden Birinden İndirin ve LocalHost veya Sunucuya Yüklemenizi Yaptıktan Sonra Yapılandırma Ayarlarını Gerçekleştirmeniz Yeterli Olacaktır.

Modül Oluşturma

application > modules Klasörü İçine Modül Klasörü Oluşturun ve config, controllers, models, language, views

de Klasör Olarak İçine Oluşturun Geri Kalan Mevcut Codeigniter Düzeninden Devam Etmeni Yeterli Olacaktır.

Modül Klasör Yapısına Örnek

  • /application/modules/
  • /application/modules/config/
  • /application/modules/controllers/
  • /application/modules/models/
  • /application/modules/language/
  • /application/modules/views/

İyi Çalışmalar Arkadaşlar

PHP’de Dikkat Edilmesi Gerekli Kodlama Standlartları

Yazılımcının üreteceği yazılımlarda kod yazımında dikkat etmesi gerekli değerler taşır bu değerler gelişmiş PHP framework üreticiler tarafından kabul görmüş standartlardır. Çalıştığınız projede kodlamayı sizden sonra okuyacak/anlayacak yazılımcıyı da düşünmek zorundasınız. Yoksa ardınızdan bolca “Önceki Yazılımcı” diyerek anılmak Var.

PHP dil olarak herhangi bir yazım standardına sahip değildir, bu nedenle projelerde yada kütüphanelerde değişik yazım stilleri görebilirsiniz. Bu sebeple geliştiricilerinin belirledikleri PSR standartları bulunmaktadır. Bu standartlar büyük projelerde, frameworklerde görmeniz mümkün.

PSR?

PSR standartları PHP kodu yazarken uyulması ön görülen kurallardır. Bu kodlar (şuan için) 5 ana başlıkta toplanmış. Bunlar;

  • PSR-0 – The Autoloading Standard
  • PSR-1 – The Basic Coding Standard
  • PSR-2 – Coding Style Guide
  • PSR-3 – Logger Interface

PSR-0 – The Autoloading Standard

  • Tüm namespacelerin üstünde bir Sağlayıcı İsmi olmak zorundadır.
  • Her bir namespace’in altında istediği kadar namespace olabilir.
  • Her bir namespace yüklenirken namespace ayracı (), klasör ayracına dönüştürülür.
  • Class ismindeki her bir alt çizgi (_), klasör ayracına dönüştürülür.
  • Her bir namespace ve class dosyası .php uzantısına sahip olmalıdır.
  • sağlayıcı adı, namespace ve class isimlerinde büyük, küçük harfin önemi yoktur.

PSR-1 – The Basic Coding Standard

  • PSR-0 içerisindeki tüm tavsiyeler geçerlidir.
  • Kodlar ile başlamadı ve dosyalar UTF-8 olmalıdır.
  • Bir declare veya overwrite söz konusu ise üstününe yorum olarak belirtilmesi.
  • Class isimleri “StudlyCaps” (yani Aaaa\Bbbb\Ccc) şeklinde olmalı.
  • Class içerisindeki sabit değerler (const) hepsi büyük harf olmalı, istenirse “_” içerebilir.
  • Method isimleri camelCase olmalı. Ör: mailSender
  • Değişken isimlerinde StudlyCaps, camelCase veya hepsi küçük şekilde alt çizgi dahil kullanım olabilir. Ör: currentDate, current_date

PSR-2 – Coding Style Guide

  • PSR-1 standartlarını destekler.
  • Kodların başlarında tab yerine 4 boşluk kullanılmalı.
  • Bir satırda önerilen 80 maximum 120 karakter olmalı.
  • Namespace, class ismi, method imsinden sonra 1 boşluk olmalı.
  • Class ve method sonrasında açılan { işareti ismin yanında değil altında olmalı.
  • Aynı şekilde kapanışta bir sonraki satırda olmalı. Açılan parantezlerin içerisinde başında ve sonunda boşluk olmamalı.
  • Opearatörlerin değişkenler ile arasında 1 boşluk olmalı.
  • true,false,null küçük kullanılmalı.

PSR-3 – Logger Interface

  • LoggerInterface adında bir framework kullanıması öneriliyor.
  • 8 level log tipi olmasını öneriyor. (debug, info, notice, warning, error, critical, alert, emergency)
  • Her method string veya obje kabul edebilir.
  • Mesaj içerisindeki placeholder lar, verilen array içerisindekiler ile değiştirilir.
  • Mesaj içerisindeki placeholder lar {} arasında yazılır.
  • Placeholder lar A-Z, a-z, 0-9, _ karakterlerinden oluşabilir.