pillinetwork hesabınızla giriş yapın.

Etiket:

php hakkındaki yazılar:

Smarty Template Motoru ile Merhaba Dünya

Uzun br aradan sonra güzel bir yazıyla geri dönüş yapayım dedim. Bu kez konumuz ne C# nede ASP olacak . Şimdi PHP yi diğer web yazılım dillerinden ayıran birçok güzellikten biri olan template kullanabilme yeteneğini anlatmaya çalışacağım. Önce template kavramı üzerine biraz laf kalabalığı yapalım.

Template nedir ?

Template bir web sitesinin yada yazılımın birden fazla arayüzden herhangi biri ile çalışabilmesini sağlayan koddan ayrılmış görsel dosyalarıdır.

PHP de template nasıl kullanılır ?

PHP de dahil birçok web yazılım dilinde template mantığı css,image,js dosyaları ile kod dosyalarını ayırıp bir parametre ile bunu değişken kılmak en basit yoldu ancak her ne olursa olsun bu ayrım tamamen keskin çizgilere sahip olamıyordu örneğin kod içinde tanımladığımız bir table da kullandığımız class eğer parametre ile tanımladığımız css dosyası içinde bulunmuyorsa bu başımıza iş açabiliyordu. Bu şekilde çalışabilmek için her oluşturduğumuz template te oldukça hassas davranmak gerekiyordu. Ancak Smarty ve buna benzer template motorları bu yükü üzerimizden almayı başardılar.

Spacer
Spacer
/* senolyaya yazdı. 28 Ağustos 2010 13:18. 4 yorum var */

Kelimeyi Harflerine Parçalama

Merhaba,
Mümkün olduğunca detaylı bir şekilde anlatarak, verilen bir kelimeyi harflerine nasıl ayıracağımızı göstereceğim. str_split() fonksiyonu ile bu işlemi kolaylıkla yapabilirsiniz ama ben bu yazıda esasen php'de metin işlemlerinin ve substr() fonksiyonunun mantığını öğretmeyi amaçlıyorum. Bu yüzden bu fonksiyonu elle yazacağız :)

Öncelikle bir yapılacaklar listesi hazırlayalım.

  1. Kelimenin kaç harften oluştuğunu bul.
  2. Tek tek harfleri alarak, bir dizi deÄŸiÅŸkenine ata

Şimdi ilk önce kelimenin harf sayısını öğrenmemiz gerekiyor. Bunun için PHP'nin strlen() fonksiyonunu kullanacağız. Örnek olarak ERAY kelimesinin harf sayısına bakalım.

1
$harfsayisi = strlen("eray");

Spacer
Spacer
/* erayalakese yazdı. 18 Ağustos 2010 14:14. 3 yorum var */

PHP ile belirlenen dakika kadar eski olan kayıtları otomatik silme...

Merhabalar,

Sorumuz : Veritabanına bigirlmiş bir kayıt var ve biz bu kayıtın tarih ve saat bilgisine "07-07-2010" ve "12:00" şeklinde sahibiz. Peki bu kayıtlardan şu anki zamandan 15 dakika önce oluşturulmuş (eskimiş olanı) olanı nasıl otomatik olarak sildirebiliriz?

Amaç : Önceki girilmiş bir zaman ile şimdiki zamanın karşılaştırılarak aradaki farka göre işlem yaptırma.

Kod:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
//Cron Job
// İşlem iki aşama
// 1. Aşamda eski tarihli ve kullanılmayan anahtarları sil...
// 2. Aşamada kalan verilerden saat farkı 15 dakika olanları ve kullanılmayan anahtarları sil...
//require_once("conn.php"); DB Bağlantı şeysi...
$sql = "select anahtar_no,anahtar_tarih, anahtar_saat,anahtar_dk,anahtar_uye from anahtarlar where anahtar_kullan = 0 order by anahtar_no asc";
$query = mysql_query($sql);
while($sonuc = mysql_fetch_assoc($query)){
if($sonuc['anahtar_tarih'] < date("d-m-Y")){
//Anahtarları otomatik olarak sil....
$sql_sil = "delete from anahtarlar where anahtar_no = '".$sonuc['anahtar_no']."' and anahtar_kullan = 0";
mysql_query($sql_sil);
}
else {
$anahtar_saat = $sonuc['anahtar_saat'];
$anahtar_saat = strtotime($anahtar_saat);
$simdi = strtotime("now");
$saat_fark = $simdi - $anahtar_saat;
if($saat_fark > 900 ){
//Anahtarları otomatik olarak sil....
$sql_update = "update uyeler set uye_kontor = uye_kontor + '" .$sonuc['anahtar_dk']."' where uye_no = '".$sonuc['anahtar_uye']."'";
$sql_sil = "delete from anahtarlar where anahtar_no = '".$sonuc['anahtar_no']."' and anahtar_kullan = 0";
mysql_query($sql_update);
mysql_query($sql_sil);
}
}
}
?>

Spacer
Spacer
/* murat kaya yazdı. 17 Ağustos 2010 14:58. 3 yorum var */

10 can alıcı PHP kod parçası

1-Bir İfadedeki Özel Kelimeleri Vurgulamak

Bazen, örneğin, arama sonuçları gösterileceği zaman, aranan kelimeleri vurgulamak müthiş bir fikirdir. Aşağıdaki foksiyon bunu gerşekten yapabiliyor.

1
2
3
4
5
6
7
8
9
function highlight($sString, $aWords)
{
if (!is_array ($aWords) || empty ($aWords) || !is_string ($sString))
{
return false;
}
$sWords = implode ('|', $aWords);
return preg_replace ('@\b('.$sWords.')\b@si', '<strong style="background-color:yellow">$1</strong>', $sString);
}

Kaynak: http://www.phpsnippets.info/highlights-words-in-a-phrase

Spacer
Spacer
/* acemimuhendis yazdı. 03 Ağustos 2010 11:59. 5 yorum var */

PHP ile Sansür / Filtreleme İşlemi

Merhaba,
Bu yazımda mümkün olduğunca uzun yoldan basit bir filtreleme / sansür sistemi yazarak size PHP'de metin işlemlerinin mantığını ve birkaç dosya işlemleri fonksiyonunu göstermeyi amaçlıyorum.
Önce yapılacaklar listemizi çıkaralım :

  1. Bir kelimeler.txt dosyamız olacak ve yasak kelimeler
    1
    eray|alakese
    ÅŸeklinde bu dosyada tutulacak.
  2. kelimeler.txt dosyası okunup, tüm içeriği (yani tüm yasaklı kelimeler) bir değişkene aktarılacak
  3. Değişken | işareti baz alınarak parçalanacak böylece tüm yasaklı kelimeler bir dizi değişkenine aktarılmış olacak
  4. strtr() fonksiyonuyla sansür işlemi gerçekleştirilecek.

Şimdi ilk olarak sansür uygulayacağımız cümleyi belirleyelim:

1
Merhaba benim adım eray soyadım ise alakese

Yasak kelimelerimiz de eray ve alakese olsun.
1
eray|alakese

kelimeler.txt dosyamızın içeriği yukarıdaki gibi olmalı.

Spacer
Spacer
/* Etiketler: , , , , , */
/* erayalakese yazdı. 20 Temmuz 2010 12:27. 3 yorum var */

Zend Framework'e Smarty Entegrasyonu

Zend Smarty Entegrasyonu
Zend Smarty Entegrasyonu

Zend Framework, polimorfik yapısı ile pek sevdiğimiz bir PHP framework. Kullandığı componentler için sağladığı interface'ler sayesinde, o component'in yaptığı işi, başka bir araç ile yapmak çok kolay oluyor.

Zend'in mevcut template engine'ini pek sevmeyebilirsiniz. Html kodu arasında <?php etiketi görmek pek tatsız olabiliyor. Zend, polimorfik yapısı ile template engine'ini istediğiniz herhangi bir template engine olarak değiştirmenize izin veriyor.

Smarty ise gönüllerde taht kurmuş, daha iyi alternatifleri varmış gibi dursa da PHP dünyasında en çok kullanılan template engine.

Bu yazıda, işini iyi yapan bu iki aracın, ortak bir şekilde nasıl kullanılacağınız anlatacağım.

Bunu yapmak için yeniden implemente etmemiz gereken component ise Zend_Controller_Action_Helper_ViewRenderer 'ı Zend_View_Abstract sınıfından türeyen kendi implemente ettiğimiz Smarty sınıfından türeyen bir obje ile değiştireceğiz.

Bunun için aşağıdaki gibi bir sınıf yazabiliriz.

Spacer
Spacer
/* Etiketler: , , , */
/* osmanyuksel yazdı. 12 Temmuz 2010 17:48. 2 yorum var */

c#, vb.net ve php'de gerçek ip'yi bulma

Bazı zamanlarda kullanıcının ip'sini öğrenmemiz gerekebilir. Çok basit şekilde;

Request.ServerVariables("REMOTE_ADDR")

bu kodu kullanırız. Ancak bazı durumlar olur ki kullanıcı proxy vb. değiştirmelerle gerçek ip'sini farklı gösterebilir. Böyle bir durumda;

--------------------

VB.NET için;

Dim _ip As String = Request.ServerVariables("HTTP_X_FORWARDED_FOR")

If (_ip = "" Or _ip.ToLower = "unknown") Then _ _ip = Request.ServerVariables("REMOTE_ADDR")

--------------------

C# için;

String _ip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

Spacer
Spacer
/* Etiketler: , , , , */
/* Sly777 yazdı. 12 Temmuz 2010 13:41. 3 yorum var */

PHP ile Bot Yapımı (DOM tarzı) wordpress örneği

Bu anlatımı daha iyi anlayabilmek için biraz HTML DOM bilgisi gerekiyor.

Amaç:

Veri çekilmesi gereken adreste biraz dolaşıp bize gerekli alt sayfalardaki gerekli verileri çekmek.

Veri çekilmesi istenen adres: http://www.phpsorunu.com/2010/06/

Gerekli olan kütüphane veya classlar :
PHP Simple HTML DOM Parser

Buradan indirebilirsiniz.

Anlatım :

Çekilmek istenen veri adresteki sayfadaki wordpress konuları

Spacer
Spacer
/* thedon yazdı. 30 Haziran 2010 13:54. 6 yorum var */

PHP ile Türkçe Gün ve Ay Gösterimi

Merhaba arkadaÅŸlar,
PHP ile günleri veya ayları yazdırdığımızda ekrana çıktısı İngilizce olarak gelmektedir. Fakat PHP nin str_replace(); fonksiyonunu kullanarak İngilizce gelen verileri Türkçe olarak değiştirip ekrana yazdırarak tamamen Türkçe tarih elde edebiliriz..Gelelim yapılışına:

Temel mantık array içindeki verilerin yerlerini değiştirmek..İlk önce array içinde aynı sırada İnglizce ve Türkçe tarihleri değişkene aktardık.Sonra yine bir değişkene tarih yazdırmak için date("d-M-Y");
fonksiyonunu atadık.En son str_replace(); ile gelen verileri değiştirdik.

Spacer
Spacer
/* GncArt yazdı. 26 Mayıs 2010 10:51. 27 yorum var */

Php İle Gerçek IP Adresini Bulma

Uzun zamandır kullandığım ve sonuçlarından memnun kaldığım bir php fonksiyonunu sizlerle paylaşmak istedim. Php ile script yazmaya başlayanların oldukça işine yarayacağından eminim.
Fonksiyonumuz kullanıcının modeminin servis sağlayıcısından aldığı gerçek ip adresini göstermektedir. Hatta şirket hatlarında kullanılan 10.10.114.xxx veya 192.168.xxx.xxx tarzı ip adresletini bile göstermektedir. İnternet camiasında proxy denen meretten kurtulmanın yolu hiçbir zaman olmadığı gibi bunda da yoktur sanırım ama yine de fonksiyonun sonuçları tatmin edici durumda.
Fonksyion Kodumuz :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function GetIP(){
if(getenv("HTTP_CLIENT_IP")) {
$ip = getenv("HTTP_CLIENT_IP");
} elseif(getenv("HTTP_X_FORWARDED_FOR")) {
$ip = getenv("HTTP_X_FORWARDED_FOR");
if (strstr($ip, ',')) {
$tmp = explode (',', $ip);
$ip = trim($tmp[0]);
}
} else {
$ip = getenv("REMOTE_ADDR");
}
return $ip;
}

Kullanım Örneği :
Göreceğiniz gibi fonksiyon içinde yapılan çeşitli kontrollerde sonuçlar hep $ip değişkenine atanmış durumda. Yapacağınız şey sadece $ip değişkenini çağırmaktan geçiyor. Buyrun size örnek :
Fonksiyonu üst tarafa yazdıktan sonra alttaki kodu yazmak yeterlidir.
1
$simdiki_ip = GetIP();

Bir de çağırdığımız ip adresiyle alakalı bir kontrol örneği verelim :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$simdiki_ip = GetIP();
// IP adresini aldık...
if (empty($simdiki_ip))
// IP adresi boşsa bir mesaj yazıp scriptimizi durduracağız, kullanıcıyı sayfamıza almayacağız.
{
exit ("IP Adresiniz Alınamadı.<br><br><br>
Lütfen IP Adresinizin kontrol edilebilir ve/veya görünebilir olmasını sağlayınız.<br><br><br>
Aksi taktirde Randevu Sistemimize giriÅŸinize izin verilmeyecektir.<br><br><br>
<b><font color=#FF0000>ÇÖZÜM :</font></b> Bu sorunun çözümü için kullandığınız Anti-Virus/Firewall programınızın ayarlarına bakın,<br>
veya<br>
Bilgi İşlem Yetkilinize danışınız.<br><br><br>
<a href=\"javascript:history.back()\" target=\"_self\">Geri Dön</a>");
}else{
echo "IP Adresiniz : $simdiki_ip";
}

Gördüğünüz gibi önce ip adresini aldık, sonra php empty komutu ile ip adresi boşsa exit ile scripti durdurup, kullanıcıya durumu bildirdik. IP adresi doluysa adresi yazdırıp, kullanıcının yoluna gitmesini sağladık.

Spacer
Spacer
/* Etiketler: , , , */
/* NacarX yazdı. 06 Mayıs 2010 12:48. 2 yorum var */
1 2 3 ... 8 Sonraki

etiket menüsü

Bu site

Nokta ve pilli ortak yapımı olan kodaman.org hep birlikte içerik üretip gelirini yazarları ile paylaştığımız kolektif bir kod yazarları blogudur. Siz de katılabilirsiniz.

pilliilan

son yorumlar

arama

pillinetwork