folder Tahribat.com Forumları
linefolder Asp - Php - Cgi - Perl
linefolder Php Faydalı Fonksiyonlarımızı Paylaşalım



Php Faydalı Fonksiyonlarımızı Paylaşalım

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    1234567B
    1234567B's avatar
    Kayıt Tarihi: 04/Şubat/2010
    Erkek

    Arkadaşlar öncelikle hepinize merhabalar,

    Eminim hepinizin oluşturmuş olduğu hayat kurtaran ufak fonksiyonları vardır.Diğer arkadaşların katılımıyla çok zengin bir konu olacağı kanısındayım.Ben youtube için oluşturduğum ufak fonksiyonlar ile başlıyorum.

    Url'den video id'si almak için fonksiyon

    <?php 
    function youtube_id($url){
    $yvid=substr($url, 31, 11);
    return $yvid;
    ?>

    Kullanımı şu şekilde

    <?php echo youtube_id("http://www.youtube.com/watch?v=X8Y6mJEg_aU");?>

    Id veya Video Url'sinden embed kodu almak için fonksiyon

    <?php
    function
    youtube_embed($url,$genislik="420",$yukseklik="315",$idolustur=true){
    if($idolustur==true)
    {
    $vid=substr($url, 31, 11);
    $sonuc='<iframe width="'.$genislik.'" height="'.$yukseklik.'" src="//www.youtube.com/embed/'.$vid.'" frameborder="0" allowfullscreen></iframe>';
    return $sonuc;
    }
    else{
    $sonuc='<iframe width="'.$genislik.'" height="'.$yukseklik.'" src="//www.youtube.com/embed/'.$url.'" frameborder="0" allowfullscreen></iframe>';
    return $sonuc;
    }
    }
    ?>

    Kullanımı için iki yol var eğer video id'sini bilmiyorsanız url ile embed kodunu alabilirsiniz.Genişlik ve yükseklik değerleri opsiyoneldir.Varsayılan olarak 420,315 tir

    <?php echo youtube_embed("http://www.youtube.com/watch?v=X8Y6mJEg_aU","420","315",true);?>

    Eğer id var ise genişlik ve yükseklik aynı şekilde opsiyoneldir.True false ayrımına dikkat edin.

    <?php echo youtube_embed("X8Y6mJEg_aU","420","315",false);?>

    Url'den video resminin url'sini almak için fonksiyon

    <?php
    function youtube_resim($link,$idolustur=true){
    if($idolustur==true){
    $vid=substr($link, 31, 11);
    $rlink="http://i1.ytimg.com/vi/".$vid."/mqdefault.jpg";
    return $rlink;
    }
    else{
    $rlink="http://i1.ytimg.com/vi/".$link."/mqdefault.jpg";
    return $rlink;
    }
    }
    ?>

    Kullanımı için yine iki yol mevcut url'den veya id'den resim çekilebilir.Urlden çekmek için

    <?php
    youtube_resim("http://www.youtube.com/watch?v=X8Y6mJEg_aU",true);
    ?>

    İd'den video resmini almak için

    <?php
    youtube_resim("X8Y6mJEg_aU",false);
    ?>



     




    arbeit macht frei
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    1234567B
    1234567B's avatar
    Kayıt Tarihi: 04/Şubat/2010
    Erkek

    <head></head> taglarının içine jquery kaynağını çağırmak için fonksiyon;

    <?php
    function jquerykaynak(){
    echo '<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>'."\n";
    }
    ?>

    Kullanımı

    <?php jquerykaynak();?>

    Jquery tarayıcı mesaj kutusu oluşturmak için fonksiyon;

    <?php
    function uyari($arg){
    echo'<script type="text/javascript">
    $(function(){
    alert("'.$arg.'");
    });
    </script>';
    }
    ?>

    Kullanımı

    <?php uyari("Merhaba TBT.");?>

    Php header yönlendirme kodu yerine javascript yönlendirme fonksiyonu;

    <?php
    function git($sd)
    {
    echo'	
    <SCRIPT LANGUAGE="JavaScript">
    <!-- 
    window.location="'.$sd.'";
    // -->
    </script>
    ';
    }
    ?>

    Kullanımı

    <?php git("www.google.com");?>

     

     

    1234567B tarafından 11/Nis/14 00:21 tarihinde düzenlenmiştir

    arbeit macht frei
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    pSkpt
    pSkpt's avatar
    Kayıt Tarihi: 10/Aralık/2010
    Erkek

    İlk verdiğin fonksiyon http ile https arasında sorun çıkartır. Şöyle daha sağlıklı olur.

    function youtube_id($url){
    $yvid=parse_url($url);
    $son = substr($yvid['query'],2);
    return $son;
    }
     

    cURL ile sayfa çağırma.

    function veriCagir($siteURL){
    	$ch = curl_init();
    	$agent = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36';
    	curl_setopt($ch, CURLOPT_URL, $siteURL);
    	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    	curl_setopt($ch, CURLOPT_USERAGENT, $agent);
    	$gelVeri = curl_exec($ch);
    	curl_close($ch);
    	return $gelVeri;
    }
    pSkpt tarafından 11/Nis/14 00:58 tarihinde düzenlenmiştir

    İmza...
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    1234567B
    1234567B's avatar
    Kayıt Tarihi: 04/Şubat/2010
    Erkek
    pSkpt bunu yazdı

    İlk verdiğin fonksiyon http ile https arasında sorun çıkartır. Şöyle daha sağlıklı olur.

    function youtube_id($url){
    $yvid=parse_url($url);
    $son = substr($yvid['query'],2);
    return $son;
    }
    

    Aynen kardeşim ben kendim kullandığım için pek ayrıntıya girmedim.Geliştirilebilir.Güzel şeyler ortaya çıkacak :)


    arbeit macht frei
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DrKill
    DrKill's avatar
    Kayıt Tarihi: 10/Mart/2004
    Erkek

    Kendi yazdığım sayfanın yüklenme süresi için kullanılan bi sınıf

     

    /*
     * Kullanımı;
     * $gecenZaman = new sayfaSuresi();
     * echo($gecenZaman->gecenSure()); 
     * gibi...
     */
    class sayfaSuresi
    {
        protected $sure;
        public function __construct() {
            $this->basla();
        }
        protected function basla()
        {
            $this->sure = -microtime(true);
        }
        public function gecenSure($hassasiyet = 8)
        {
        	$sure = $this->sure;
        	$sure += microtime(true);
            if(($hassasiyet >=1) && ($hassasiyet <= 8)){
                return ( (string)number_format($sure, $hassasiyet) ).' saniye';
            }
            else return ( (string)number_format($sure, 3)).' saniye';
        }
        public function __destruct() {
            unset($this->sure);
        }
    }


    @Dr.Kill 
    @TBT
    
    Kodlar html çıktılarında yeni satır ve boşluk karakterlerini değiştirmeye yarıyor. Ters işlevlilerinide 
    yazdım.
    
    function bosluk2nbsp($metin) //boşluk karakterini " "  -> " &nbsp" şekline çevirir. Birden fazla boşlukları htmlde girildiği gibi göstermek için.
    {
    	return str_replace("  ", " &nbsp;", $metin);
    }
    
    function nbsp2bosluk($metin)
    {
    	return str_replace(" &nbsp;", "  ", $metin);
    }
    
    function nl2br2($string) { //new line \n ları <br \> yapar.... Yeni satırları html içinde girildiği gibi göstermek için.
    	return str_replace(array("\r\n", "\r", "\n"), "<br />", $string);
    }
    
    function br2nl($metin)
    {
    	return preg_replace('#<br\s*/?>#i', "\n", $metin);
    }
    DrKill tarafından 11/Nis/14 00:55 tarihinde düzenlenmiştir

    Bu imzayı her gördüğünüzde 4gb kotanızın 0,00000358559191226959228515625 azalmaktadır. Bilerek ve istenerek bu imza yapılmıştır. Amaç kotanızı sömürmektir
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Austen
    Austen's avatar
    Kayıt Tarihi: 13/Ağustos/2012
    Erkek

    Youtube video linki alırken sondaki eklentileri almak istemezseniz bunu da kullanabilirsiniz.

    function video_id($link = "")
    {
    	preg_match("#watch\?v=(\w*)#",$link,$video);
    	return $video[1];
    }
    
    $link = "https://www.youtube.com/watch?v=gLDYtH1RH-U#t=85";
    
    echo video_id($link);
    Austen tarafından 11/Nis/14 11:25 tarihinde düzenlenmiştir
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    xzxz
    xzxz's avatar
    Kayıt Tarihi: 21/Haziran/2003
    Erkek

    veriver classı var , bir tablodan belirtilen kıstaslarla veri çekmeye yarayan içinde arama ve listeleme fonksiyonları mevcut , henüz crudları yani güncelle ekle falan okısmını yazmadım , lazım olursa normal formlarla ... 

    bunu kullanmak için öncelikle veritabanı bağlantısı olduğunu varsayıyoruz , sonra iki tip sayfalama var biri ajaxlı diğeri normal ajaxlıyı kullanmak için goster2 fonk. u js dosyasına eklemen lazım 

    bu class ı kullanarak listeleme normal sql yazıp aramaya göre çok hızlı çalışıyor ve anlarsan çok daha kolay çat diye koyuluyor 

    ////////////////////// bu bir js fonksiyonudur ////////////////////////////////////

    function goster2(dosya,dv,lx) {

    document.getElementById(dv).innerHTML='loading.gif link';

    ajax = new AJAX();

        //var dosya= 'ctrl.php?email=';

        if ( ajax ) {

            ajax.onreadystatechange = function () {};

            ajax.abort();

        }

        ajax.open('GET', dosya+"?sf="+lx, true);

        ajax.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");

        ajax.setRequestHeader("Connection", "close");

        ajax.send(null);

        ajax.onreadystatechange = function () {

    if( ajax.readyState == 4 ) {

    document.getElementById(dv).style.display='';

    document.getElementById(dv).innerHTML=ajax.responseText;

    } //readystate

    }// funx ajax 

    } // funcs

    ////////////////////// bu bir js fonksiyonudur ////////////////////////////////////

     

    class veriver{

    private $tablo;

    public function __construct($tablo_adi){

    //echo "[".date("ymdhis")."]";

    if(!empty($tablo_adi)){

    $this->tablo=$tablo_adi;

    }else{

     throw new Exception("tablo seçilmedi");

    }

     

    }

    private function arama($sqlx,$kistas,$tarih,$keyword){

    /* $sql , alanædeger@alan1ædeger1 , tarih_alani@20400221@eq , anahtar@alan1@alan2 

    burada sql i kendin parametre olarak girebilirsin girmezsen yukarıdaki formatta alan ve değer adlarını girmek gerek, 

    tarih karşılaştırmada eq, 1 eşit ,2 önce eşit ,3 sonra eşit 

    anahtar aramada , anahtar kelime sonrasındaki alanlar içinde  %% ile aranacak

    */

    if(!empty($keyword)){

    $keyDizi=explode("æ",$keyword);

    foreach($keyDizi as $kw){

    $dizi=explode("@",$kw);

    $sqlx.=" AND (";

    //$sql2.=" AND (";

    for($i=1;$i<(count($dizi)+1);$i++){

    if(!empty($dizi[$i])){

    if($dizi[$i]=='kategori'){

    $sqlx.="A.".$dizi[$i]." LIKE '%@".$dizi[0]."@%' OR ";

    }else{

    $sqlx.="A.".$dizi[$i]." LIKE '%".$dizi[0]."%' OR ";

    }

    }

    }

    $sqlx.=" A.id LIKE '".$dizi[0]."')";

     

    }

     

    }///////////keyword

    if(!empty($kistas)){

     

    //echo $kistas."


    ";

     

    $dizi=explode("@",$kistas);

    foreach($dizi as $d){

    //echo $d."
    ";

    $dz=explode("æ",$d);

    //if((!empty($dz[0]))&&(!empty($dz[1]))){

    if(!empty($dz[0])){

    $sqlx.=" AND A.".$dz[0]."='".$dz[1]."'";

    }

    }

    }

     

     

     

    if(!empty($tarih)){///tarih

    $dz=explode("@",$tarih);

    $eq=(!empty($dz[2]))?$dz[2]:1;

    if($eq==1){

    $sqlx.=" AND A.".$dz[0]."='".$dz[1]."'";

    }elseif($eq==2){

    $sqlx.=" AND A.".$dz[0]."<=".$dz[1];

    }else{

    $sqlx.=" AND A.".$dz[0].">=".$dz[1];

    }

    }///tarih

    return $sqlx;

    }////arama

    function listele($order,$p1,$deste,$sql,$kistas,$tarih,$keyword,$div,$dosya,$link){////////////////listele

    if(empty($sql)){/// sql yok

    $sql="SELECT A.* FROM ".$this->tablo." AS A WHERE A.id>0"; 

     

    }///sql yok

     

     

    $sql=$this->arama($sql,$kistas,$tarih,$keyword);

    //$dxx=explode("WHERE",$sql);

    //$sql2="SELECT COUNT(A.id) FROM ".$this->tablo." AS A WHERE ".$dxx[1];

     

    $dxx=explode("FROM",$sql);

    $sql2="SELECT COUNT(A.id) FROM ".$dxx[1];

     

    //$sql2=str_replace('*','COUNT(id)',$sql);

    $p1=(!empty($p1))?$p1:0;

    $deste=(!empty($deste))?$deste:10;

    $g=$deste*$p1;

    //$secBul=explode(" ",$sql);

    //$sql2=str_replace($secBul[1],'COUNT(id)',$sql);

    $s1=mysql_fetch_array(mysql_query($sql2));

    echo mysql_error();

    $say=$s1[0];

    $order=(!empty($order))?$order:'id';

    $sql.=" ORDER BY ".$order." LIMIT ".$g.",".$deste;

     

     

    //echo $sql."
    ";

    //echo $sql2;

     

    $sonuc=array();

    //echo "[".$sql."]";

    $rest=mysql_query($sql);

    echo mysql_error();

    if(mysql_error()){

    $sonuc[0]=mysql_error();

    return $sonuc[0];

    }else{

    while($rx=mysql_fetch_array($rest)){

    $sonuc[]=$rx;

    }

     

    }

    $this->paging($div,$dosya,$link,$deste,$p1,$say);

    return $sonuc;

     

    }//////////////////listele

    ////////////////////////////paging///////////////////////////////////

    private function paging($div,$dosya,$link,$deste,$p1,$say){

    $p1=(!empty($p1))?$p1:0;

    $deste=(!empty($deste))?$deste:10;

    $g=$deste*$p1;

     

    $ss=round($say/$deste);

    $top2=$ss*$deste;

    $ss=($say>$top2)?$ss+1:$ss;

    //echo $sql."
    ".$say."|".$ss;

    $page=(!empty($page))?$page:($p1>10)?$p1-5:0;

    //$link=$link."&";

    $px=($say>10)?10:$ss;

    $p2=(($page-10)>0)?$page-10:0;

    $p4=(($p1-10)>0)?$p1-10:0;

     

     

    if(empty($div)){///////link paging

    if($say){/// linkli olan

    ////////////////////////////paging///////////////////////////////////

    if($ss>1){

     

    if(($ss>$px)&&($page>0)){?>

    <<|

    <|

     

      | 

     

    >|

    >>

     

    <<|

    <|

     

      | 

     

    >|

    >>

     

     

    <?

     

    if(!empty($id)){///upadate

     

    }else{////insert

     

     

    }////insup

    ?>

     

     

     

    <?

    }

    function ekleGuncellex(){}

    function sil(){}

    }

     

     

     

    ////////////////////// kullanım örneği ////////////////////////////

     

    include "class.veriver.php";

    $key2="";

    $t=0;

    $tarihx="";

    $link="13&tip=".$tip;

    $kistas=($tip>0)?'silindiæH@tipæ'.$tip:'silindiæH';

    $dosya=url."/contentOrta.php";

    $div="gosterSol";

    $kw="";

    $kategori_id=0;

    $onay="";

    $p1=(!empty($_REQUEST['p1']))?$_REQUEST['p1']:0;

    $page=(!empty($_REQUEST['page']))?$_REQUEST['page']:0;

    //function listele($order,$p1,$deste,$sql,$kistas,$tarih,$keyword,$div,$dosya,$link){////////////////listele

    $veri=new veriver("ilanlar");

    $dataSet=$veri->listele('id DESC',$p1,2,'',$kistas, $tarihx , $kw ,$div,$dosya,'13'.$link);

    foreach($dataSet as $data){

        /////include "ilanThumb.php" falan felan döngü içinde napılacaksa artık;   

      }

     

    xzxz tarafından 11/Nis/14 12:46 tarihinde düzenlenmiştir

    herşeyin bir şeyi vardır
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    xzxz
    xzxz's avatar
    Kayıt Tarihi: 21/Haziran/2003
    Erkek

    yine çok faydalı bulduğum bir recursive fonk var  , kendi mamülümdür ,  bunun için önce aşağıdaki yapıda bir tablo oluşturmak gerek sonra yazılan fonk u kullanarak , sınırsız alt alt alt alt ... kategoride bir ağaç yapısı elde etmek mümkün

    yani araç-otomobil - bmw - A sınıfı - B modeli - C serisi - D bilmem nesi    

     

    ///tablo yapısı budur 

    CREATE TABLE IF NOT EXISTS `kategoriler` (

      `id` int(11) NOT NULL AUTO_INCREMENT,

      `baslik` varchar(255) COLLATE utf8_turkish_ci NOT NULL,

      `ust_kat` int(11) NOT NULL,

      `tip` int(11) NOT NULL,

      `basamak` int(11) NOT NULL,

      `harita` varchar(255) COLLATE utf8_turkish_ci NOT NULL,

      `sira` int(11) NOT NULL,

      `aktif` enum('E','H') COLLATE utf8_turkish_ci NOT NULL DEFAULT 'E',

      `ekleyen` int(11) NOT NULL,

      PRIMARY KEY (`id`)

    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci AUTO_INCREMENT=135 ;

     

    ////fonksiyonda budur

    function alt_kategori_goster($a,$secim,$islem,$ust_kat_id){/// a => kat_id, secim gosterim

        

              $alt_kat=mysql_query("SELECT * FROM kategoriler WHERE ust_kat='".$a."' ORDER BY sira");

              while($ax=mysql_fetch_array($alt_kat)){

                  if($secim==1){////gösterim

                  for($i=0;$i<$ax['basamak'];$i++){

                      echo "--";

                  }

                  echo "&nbsp;&nbsp;";

                  if($ax['aktif']=='H'){

                  echo "<a href=\"#\" onclick=\"goster2('kategoriler.php','goster','13&tip=".$_REQUEST['tip']."&aktif=E&id=".$ax['id']."&ust_kat_id=".$ust_kat_id."');\"><img src=img/ball_red.gif border=0></a>";    

                  }else{

                  echo "<a href=\"#\" onclick=\"goster2('kategoriler.php','goster','13&tip=".$_REQUEST['tip']."&aktif=H&id=".$ax['id']."&ust_kat_id=".$ust_kat_id."');\"><img src=img/ball_green.gif border=0></a>";                 }

     

    echo "&nbsp;&nbsp;<a href=\"#\" onclick=\"goster2('kategori_form.php','goster','13&tip=".$ax['tip']."&ust_kat=".$ax['ust_kat']."&id=".$ax['id']."&ust_kat_id=".$ust_kat_id."');\"><img src=\"img/edit.gif\" border=\"0\"></a>";

    echo "<a href=\"#\" onclick=\"goster2('kategori_form.php','goster','13&tip=".$ax['tip']."&ust_kat=".$ax['id']."&ust_kat_id=".$ust_kat_id."');\"><img src=img/add.png border=0></a>&nbsp;".$ax['baslik'];              

                  

                    

                    if(0){

                  ?>

                  &nbsp;&nbsp;<a href="#" onclick="goster2('ilanOzellik.php','goster','13&tip=<?=$ax['tip']?>&ust_kat_id=<?=$ax['ust_kat']?>');">[Bu kategori için özellik ekleyin]</a>

                  <?}

                  echo "<br>";

                  }else{////aktivasyon

                      if(!empty($islem)){

                        mysql_query("UPDATE kategoriler SET aktif='".$islem."' WHERE id='".$ax['id']."'");

                      }

                      #echo $ax['baslik']."<br>";

                  }

                  

                  alt_kategori_goster($ax['id'],$secim,$islem,$ust_kat_id);

              }

          }

     

     

    bunlar süper yararlı fonksiyonlar olup çeksen her yola gelir tarafları vardır , mesela bu fonksionun içinde herbir ana kategoriye alt özellikler ekleme aracı da var , kullanmak isteyen olursa onuda paylaşayım


    herşeyin bir şeyi vardır
Toplam Hit: 862 Toplam Mesaj: 8