Google Fan Webmaster Forum - Tekil Mesaj gösterimi - Php Ekşin
Konu: Php Ekşin
Tekil Mesaj gösterimi
  8  
Alt 14-08-2007, 13:54:38
saho saho isimli üyemiz çevrimdışıdır. (Offline)
 
Standart

saol ascer ne alemdesin ya sende yaz 2 bişiler
hazır girmişken bişi daha yazam
youtube indirici getten gelen youtube video id sini indirir.
PHP- Kodu:
<?php //php yi başlattık
if(empty($_GET[id])) die("Id yi boş gönderemezsiniz");//id boş ise ekrana hata verdirdik ve scriptin alt kısmının çalışmasını engelledik die() fonk ile
        
function dosya_al($url) {//dosya al fonksiyonunu tanımlıyoruz $url deişkenini alarak
            
if(function_exists('curl_init')) {//curl fonksiyonu sunucuda mevcut kurulu ise curl ile alıyor yoksa file_get_contents ile alıyor
                
$ch curl_init();
                
curl_setopt ($chCURLOPT_URL$url);
                
curl_setopt ($chCURLOPT_RETURNTRANSFER1);
                
curl_setopt ($chCURLOPT_CONNECTTIMEOUT0);
                
curl_setopt ($chCURLOPT_REFERER$url);
                
$veri curl_exec($ch);
                
curl_close($ch);
            } else {
                
$veri file_get_contents($url);
            }
            return 
$veri;//veri değişkeni fonksiyondan çıktı olarak veriliyor
        
}

function 
indir($id) { //youtube indir fonk. tanımlanyor
$url="http://www.youtube.com/watch?v=".$id;//sayfa atanıyor
$gelen=dosya_al($url);//dosya al fonksiyonuna gidip sayfa çekiliyor
$bic=explode('SWFObject("/player2.swf?hl=en&',$gelen); $bic=explode('"',$bic[1]);
$title=explode('<title>',$gelen); $title=explode('</title>',$title[1]);//preg_match ile yapabilirdik ama ne biliyim zamanında explode ile yapmış koymuşum o yüzden değişmeye gerek duymadım bu explode satırlarınıda 
//SWFObject("/player2.swf?hl=en& buradan başla" a kadar olan kısmı al dedik
//ikinci explode ise sayfanın titlesini yani videonun adını aldık
$veri[baslik]=$title[0];//explode nin [0] . çıktısı video adı
$veri[link]=$bic[0]; // video deep adresi &t= olan kısmı mühimdi
return $veri;// veri arrayına dönüş yaptırdık
}
$gidiyok=indir($_GET[id]);//indir fonksiyonuna id yi gönderdik ve videp deep link ile video adını aldık 
ob_start();//header lerle işlem yapacağımız için ekşin yaptık burayıda
              
ini_set('zlib.output_compression''Off');//zlip çıktı sıkıştırmasını kapadık
           
header('Content-Description: File Transfer');//sayfa açıklaması nı atadık
           
header("Pragma: public");// cache cont dikkat ederseniz youtubeden videoyu izlediyseniz ve bu indiriciye sonra tıklarsanız mesala user videoyu izledi bğeendi indirmek istedi haşırt diye cacheden 1-2 sn de video iner
           
header("Expires: 0");// geçerlilik
           
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
           
header("Cache-Control: private",false);
           
header("Content-Type: application/force-download");// bir tip php nin content typleri mesala resim basacaksanız image/jpeg , png gif gibi video ise karakter düzenlemesi yapacaksanız 
//   header("Content-Type: text/html; charset=utf-8"); gibi text/xml vs. gibi atamalar yapılabilir biz burada dosya indirtmek için download yaptık içerik tipini
           
header("Content-Disposition: attachment; filename=\"www.biseyret.com-".$gidiyok[baslik].".flv\";");// içeriğe aldığımız dosya adını ve başınada site adımızı ekledik inecek dosyayı sayfaya atadık
           
header("Content-Transfer-Encoding: binary");// transfer tipini atadık
           
header("Content-Length: ".@filesize($dadi));//indirme sayfasında çıkacak dosya boyutu şukadardır bilgisinede verdik
           
readfile("http://youtube.com/get_video?$gidiyok[link]") or die("Dosya Bulunamadı");// indirme olayıda burada tamama erdi
?>
iyi oldu galiba
bu dosyayı indir.php diye kayıt edin
indir.php?id=youtube_video_id
gibi videoyu indir diye link verebilirsiniz şayet şöyle bişi varsa hostunuzda youtube video id sini
http://www.youtube.com/v/NCO6y2ML7kw

bu şekilde saklıyorsanız
video id sine nasıl erişecem diyorsanız hemen
split-explode 2 side olur split i anlatalım bunları
daha önce
http://www.r10.net/php/73461-php-de-...ibi-okuma.html
burada vermiştim bakabilirsiniz

http://www.youtube.com/v/NCO6y2ML7kw
bu dosya url si

$link değişkeninde diye düşünelim
son video id sini almak için
PHP- Kodu:
$idx=split('/',$link);
$video_id=$idx[4]; 
4. slashes(/) ten sonrası nı video_id değişkenine atamasını
söyledik
link verirkende
<a href='indir.php?id=<?=$video_id;?>' title='$title videosunu indir'>
$title İndir</a>
gibi linklendirebilirsiniz araya img falan koyup ona link verirseniz
vs.vs. herşey mümkün
__________________
O bir dünya markası!
Alıntı ile Cevapla
 

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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252