jokerhacker
Active Member
hey, i thought many people will like that.
I just wanted to help, so this PHP class may help some people who need it.
it's not a script, neither a software, it's a class used by developers to be integrated in their scripts.
How about cookies, proxies and other curl option??
well, everybody know curl_setopt_array(), you need to create an array, put all your configs there and pass it to the class using
setCurlOpts(). But keep in mind, these settings will be overwritten:
- CURLOPT_RETURNTRANSFER
- CURLOPT_FOLLOWLOCATION
- CURLOPT_BINARYTRANSFER
- CURLOPT_FRESH_CONNECT
- CURLOPT_CONNECTTIMEOUT
- CURLOPT_FILE
- CURLOPT_RANGE
Included Functins
this is a list of function made in the class
- activeLog() - true or false - to desactivate activate log - log file is created in tempdir
- setUrl() - sets the url to download
- setParts() - number of connection (parts) to be created
- setCookies() - set the cookies string to be passed with the curl request
- setTempDir() - must be absolute parth, if not found, it will be created
- setProgressCallback() - enable progressbars
- setDownloadDir() - must be absolute parth, if not found, it will be created
- setCurlOpts() - this is the function allowing you to set your cookies, proxies and other option as an array of curl options.
- getFileSize() - you may use it to get the file size of a url
- isMT() - check if the given url supports multithreaded connection
- download() - the most important function lol
- slow_download() - force CurlAxel to download file using 1 connection
- fast_download() - force CurlAxel to download file using multiple connection
Version
curent version is 0.5 30/10/11
still have lots of work to do, but i need your feedback!
Example how to use it
It's pretty simple!
PHP:
$fileurl = "++ url here ++";
$curlaxel = new CurlAxel;
$curlaxel->setUrl($fileurl);
$curlaxel->activeLog(true);
$curlaxel->download();
Want to see progressbars?
It's pretty simple! (see test.php also)
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<script src="js/jquery.js"></script>
<script src="js/jquery.progressbar.min.js"></script>
</head>
<body>
<?php
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
include 'CurlAxel.php';
//$fileurl = "http://cachefly.cachefly.net/100mb.test";
$fileurl = "http://93.190.137.8/1000mb.bin";
echo "downloading $fileurl <br>";
$curlaxel = new CurlAxel;
$curlaxel->setUrl($fileurl);
$curlaxel->setProgressCallback();
$curlaxel->setBufferSize(32*1024*1024);
$curlaxel->activeLog(true);
$curlaxel->download();
to use the progress bar, you need to integrate jquery and jquery progressbar plugin into your page. Here is what to do:
Code:
<head>
<script src="js/jquery.js"></script>
<script src="js/jquery.progressbar.min.js"></script>
</head>
[SLIDE]http://i.imgur.com/b0SS0.png[/SLIDE]
I'd like to see people using this and providing feedback, if you see an error just activate the log and make a reply here, or contact me directly.
pleas keep it away from commercial use.
Special thanks to CuraHack who motivated me and gave me a great development environment :D
changelog
version 0.5 30/10/11
- improved link checking method
- added 100% working detailed progress bar (see docs for more infos)
- some code cleanup
- added support for various server responses
- fixed filesize issue when requested server doesn't allow download accelerating
- added support for cookies (passed as string)
- added support for standard curl progress callback functon
- small bug fixes
- added GNU GPL 3 licence
- added optional buffersize to merge files. can be set though setBufferSize (in bytes).the default buffersize is 64Mb
- updated useragent choice as Robin H requested. now mozilla is the default user agent, but can be changed using user curl options array
Last edited: