Konuyu görüntüle
IUCODERS FORUM > Programlama > PHP > Geass Php Kod Bankası
Yazar
geass


avatar
Istanbul
Kayıt: 04.10.2010
05.10.2010-21:09 #71242
Not: Böyle bir postuma üyelik scripti bulma bahanesiyle gelenler bence vazgeçin şimdiden (Zone'da olmuştuda önceden uyarayım dedim :) )

Ayrı bir sayfa halinde var fakat oraya nasıl ekleniyor ki ekleyemiyorum sanırım ? O yüzden bende buradan açtım . Ufak ufak kodlar paylaşırım .

Usd - TL çevirici

function ytl_cevir($miktar) { 
   
    $baglanti = implode('',file('http://www.tcmb.gov.tr/kurlar/today.html')); 
    preg_match('#ABD DOLARI[[:space:]]+([0-9.]+)[[:space:]]+([0-9.]+)#',$baglanti,$dolar); 
    $alis  = $dolar[1]; 
    $satis = $dolar[2]; 
    $ytl = ($miktar * $alis); 
   
    return $ytl; 
}  


Kullanım:
ytl_cevir(100);  


100$ olan parayı ekrana yazar. Güncel kur.





Pretty Hot Programmer www.makicin.com

Yazar
geass


avatar
Istanbul
Kayıt: 04.10.2010
05.10.2010-21:15 #71243
Sansür fonksiyonu:

Vbulletinde falan vardır istenmeyen kelimeleri panelden belirleriz oraları bizim belirlediğimiz sembolle değiştirir. Yani sansürler

Db ile uğraşmayalım diye .txt ile yapıyorum.

abc.txt dosyası oluşturun
iucoders,geass,muhammet


Fonksiyonumuz:
 <?php 
function sansur($dosya,$metin) { 
$words = explode(",", file_get_contents($dosya)); 
$replace = array(); 
foreach ($words as $key => $word) 
{ 
    $words[$key] = "/{$word}/i"; 
    $replace[]   = "(sansür)"; 
} 
echo preg_replace($words, $replace, $metin); 
} 
?> 



Kullanımı :

<?
$yazi = "iucoders da geass vurgunu :P Bu nasıl bir metin oldu böyle. Maksat yazı yazmak değil mi ? Muhammet?";
echo sansur("abc.txt",$yazi);
?>

Neler yaptık ?

abc.txt dosyasında yasaklı kelimeleri virgülle ayırarak yazdık. Ayırdık kestik biçtik sansur fonksiyonuna atadık. Ve $yazi değişkendinindeki metni sansür fonksiyonu ile birleştirdik ve ekrana bastık. Ekranda abc.txt deki kelimeler (sansür) şeklinde gözükecektir

Kolay gelsin












Pretty Hot Programmer www.makicin.com

Yazar
geass


avatar
Istanbul
Kayıt: 04.10.2010
05.10.2010-21:17 #71244
Rasgele güçlü parola oluşturma

<?
function rasgeleparola()
 $semboller = "1234567890abcdefGHIJKLMNOPQRSTUVWxyzABCDEFghijklmnopqrstuvwXYZ1234567890";
 $sifre = '';
 for($i=0;$i<7;$i++)
 {
  $sifre .= $semboller{rand() % 39};
 }
 return $sifre;
}

?> 


Kullanımı:

 <?


$sifre=rasgeleparola();
echo $sifre;
?> 






Pretty Hot Programmer www.makicin.com

Yazar
clairvoyant


avatar
Antalya
Kayıt: 05.05.2006
06.10.2010-04:08 #71252
Benden tavsiyeler :

ytl_cevir fonksiyonunda (en azından aynı execution sürecinde) cache kullanmak performans açısından önemlidir.

sansur fonksiyonunda regex olarak "/{$word}/i" yerine '/[^A-Z]'.$word.'[^A-Z]/i' gibi bir şey kullanmak daha verimli olur. Çünkü sakıncası olan bazı sözcükler sakıncası olmayan bazı sözcüklerin parçası olabilir. Örneğin "Plastik toplayarak satarım." tümcesinin "Plastik topla(sansür) satarım." şekline dönüşmesi gereksizdir. Bunun yanında $replace değişkeninin dizi olması fazladan işlem zamanı ve bellek harcar; sadece preg_replace($words, '(sansür)', $metin) demek yeterli olur.

Bu arada rasgeleparola fonksiyonunda rastgele üretilen index aralığı karakter sayısı ile aynı değil. Orada 72 adet karakter tanımlanmış fakat yalnızca 0-39 aralığında değer üretiliyor. rand fonksiyonu yerine mt_rand kullanılırsa daha sağlam değerler üretilebilir. Bu arada $semboller değişkeni statik olarak tanımlanırsa tekrar kullanımlarda zamandan tasarruf sağlanabilir (dizilerde gözle görünür avantaj sağlıyor fakat stringlerde ne derece olur bilemiyorum).

Bunu şu şekilde test edebilirsiniz:
function rasgeleparola1() {
	$semboller = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
	$sifre = '';
	for($i=0;$i<7;$i++)
		$sifre .= $semboller{rand() % 62};
	return $sifre;
}

function rasgeleparola2() {
	static $chars = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
	$output = '';
	for($i=0; $i<7; $i++)
		$output .= $chars[mt_rand()%62];

	return $output;
}

$t0 = gettimeofday(1);

for($i=0; $i<10000; $i++)
	$x = rasgeleparola1();
$t1 = gettimeofday(1);

for($i=0; $i<10000; $i++)
	$x = rasgeleparola2();
$t2 = gettimeofday(1);

printf("rasgeleparola1: %8.6f ms\n", ($t1-$t0)*1000);
printf("rasgeleparola2: %8.6f ms\n", ($t2-$t1)*1000);







Let`s make this world a better place to live !

Yazar
geass


avatar
Istanbul
Kayıt: 04.10.2010
06.10.2010-11:15 #71256
Haklısın sansür olayında daha detaylı bir şekilde içine girilebilirdi ki zaten benim yazdığımda 2 seçenek sunuyordum
-tam sözcük
-ek veya kelime

Buda senin dediğin ile benimkisinin birleşmesi cinsinde.

% 39 ile yontmasından dolayı olabilir 72 de 72 istersek onu da ona göre ayarlayabilir (Tıpkı senin verdiğin örnekte %62 ile yapman gibi )

Haklısın ama kısacası biraz daha büyük bir çalışma yapılabilir ama adı üstünde ufak betikler , o kadar uğraşmamıştım bunlar için ama sağol yine de kullanacak arkadaşlara tavsiye olur





Pretty Hot Programmer www.makicin.com

Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb