Curl İle RapidShareden Kendi Sunucuma Download Yapıyorum Yanlız Download İşlemini Gerçekletirirken Aynı Anda Bir Yüzde Çubuğu Yapmak İstiyorum
Yanlız Sorun şuki Bildiğiniz Gibi Dosya İndirme İşlemi Bitmeden Herhangi Bir Mesaj Vermiyor Bunu Aşmanın En Basit Yolu Nedir Bu Engeli Nasıl Aşa Bilirim Bir Kaç Yöntem Denedim Ama Bir Sonuca Ulaşamadım.
Kodlarım Bunlar
indir.php
<?PHP
include "fonksiyon.php";
$link = $_POST['url'];
$test_url=$link;
$ApiURL=RapidApiURL($test_url);
$Sonuc=RapidFileCheck($ApiURL);
$link = "http://".$ayar["rapid"]["user"].":".$ayar["rapid"]["pass"]."@rs".$Sonuc['ServerID'].".rapidshare.com/files/".$Sonuc['DosyaID']."/".$Sonuc['DosyaAdı']."";
include("class.progress_bar.php");
$pbar = new progress_bar('pbar',1,500,FALSE); //İlerleme Çubuğu İçin Sınıfı Başlatıyoruz
$num_tasks = $Sonuc['DosyaBoyutu']; // Çubuğu Dosya Boyutuna Göre Ayarlıyoruz
$pbar->create(); // Porgres Barı Oluşturuyoruz
for($cur_task = 0; $cur_task <= $num_tasks; $cur_task++)
{
usleep(10000); // 10000 microsaniye geçiktirme ile başlatıyoruz
flush();
$pbar->set_percent_adv($cur_task,$num_tasks);
}
indir($link,$Sonuc['DosyaAdı'],$ayar["dizin"]["yol"]); // İndirme İşlemi...
?>fonksiyon.phpinclude "ayar.php";
function RapidApiURL($URL)
{
//Url içerisinden dosya Id ve adını almamızı sağlayacak deseni tanımlıyoruz.
$desen="/files\/(.*)\/(.*)/";
preg_match($desen,$URL,$File);
$RapidApi="http://api.rapidshare.com/cgi-bin/rsapi.cgi?sub=checkfiles_v1";
$RapidApi.="&files=" .$File[1]; //Dosya ID
$RapidApi.="&filenames=" . $File[2];// Dosya Adı
return $RapidApi;
}
function RapidFileCheck($URL)
{
$ch = curl_init();// CURL başlatılıyor
curl_setopt($ch, CURLOPT_URL, $URL); // Adrese Curl ile bağlanıyor
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$string = curl_exec($ch); // Adresten dönen değer değişkene aktarılıyor.
curl_close($ch);
$string=split(",",$string);// Dönen sonuç ',' karakteri ile bölünerek array tipli bir değişkene aktarılıyor.
Switch ($string[4])// DosyaDurumu
{
Case 0: $Sonuc['durum']=0;break;
Case 1: $Sonuc['durum']=1;break;
Case 2: $Sonuc['durum']=1;break;
Case 3: $Sonuc['durum']=0;break;
Case 4: $Sonuc['durum']=0;break;
Case 5: $Sonuc['durum']=0;break;
Case 6: $Sonuc['durum']=1;break;
}
if ($Sonuc['durum']=1){
$Sonuc['DosyaID'] ="" . $string[0] . "";
$Sonuc['DosyaAdı'] ="" . $string[1] . "";
$Sonuc['DosyaBoyutu'] ="" . byteFormat($string[2], "KB") . "<br />";
$Sonuc['ServerID'] ="" . $string[3] . "";
$Sonuc['DosyaDurumu'] ="" . $string[4] . "<br />";
$Sonuc['KısaHostAdı'] ="" . $string[5] . "";
}
return $Sonuc;
}
function indir($adres,$isim,$yol) {
$ch = curl_init($adres);
$fp = fopen($yol."/".$isim, "w");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
}
function byteFormat($bytes, $unit = "", $decimals = 2) {
$units = array('B' => 0, 'KB' => 1, 'MB' => 2, 'GB' => 3, 'TB' => 4,
'PB' => 5, 'EB' => 6, 'ZB' => 7, 'YB' => 8);
$value = 0;
if ($bytes > 0) {
if (!array_key_exists($unit, $units)) {
$pow = floor(log($bytes)/log(1024));
$unit = array_search($pow, $units);
}
$value = ($bytes/pow(1024,floor($units[$unit])));
}
if (!is_numeric($decimals) || $decimals < 0) {
$decimals = 2;
}
return sprintf('%.' . $decimals . 'f '.$unit, $value);
}form.php<p align="center"><span class="header">File Downloader | Coded By MelihBuyuk</span></p><hr> <form action="indir.php" method="post"> <table align="center"> <tr><td><input type="text" class="input" name="url" size="70"></td><td> </td></tr> <tr><td> </td><td><input type="submit" value="yukle" class="inputbuton" name="urlpost"></td></tr> </form>ve Son Olarakta
class.progress_bar.php
<?php
class progress_bar
{
var $name;
var $percent;
var $width;
function progress_bar($name = 'pbar',$percent = 1,$width = 100,$auto_create = TRUE){
$this->name = $name;
$this->percent = $percent;
$this->width = $width;
if($auto_create)
{
$this->create();
}
}
function create(){ ?>
<div align="center">
<center>
<table cellspacing="0" cellpadding="0" style="FONT-FAMILY: Tahoma; FONT-SIZE: 11px;">
<tr><td></td>
<td><div style='border:#BBBBBB 1px solid; width:300px; height:10px;'>
<div id="progress" style='background-color:#000099; margin:1px; width:0%; height:9px;'>
<img name="<? echo($this->name)?>" border="0" src="http://www.realestate-in-fortworth.com/admin/images/fill.gif" width="<? echo(($percent * .01) * $width);?>" height="11">
</div>
</div></td><td></td><tr>
<tr>
<td align="left" id="received">0 KB</td>
<td align="center" id="percent">0%</td>
<td align="right" id="speed">0 KB/s</td>
</tr></table>
</center>
</div>
<?
}
function set_name($name)
{
$this->name = $name;
}
function set_percent($percent)
{
$this->percent = $percent;
echo('<script>document.images.' . $this->name . '.width = ' . ($this->percent / 100) * $this->width . '</script>');
}
function set_percent_adv($cur_amount,$max_amount)
{
$this->percent = ($cur_amount / $max_amount) * 100;
echo('<script>document.images.' . $this->name . '.width = ' . ($this->percent / 100) * $this->width . '</script>');
}
function set_width($width)
{
$this->width = $width;
}
}
?>Kodlar Ve Yazı Biraz uzunca Oldu Ama Umarım Ne Yapmak İstediğimi Anlamışsınızdır Bu Konuda Epey Sıkıştım Şimdiden Teşekkürler