/**
* [__call description]
*
* @param string $method HTTP Methods
*
* @param string $arguments Arguments
*
* @return Response
*/
public function __call($method, $arguments)
{
if (in_array($method, array('simple_get', 'simple_post', 'simple_put', 'simple_delete'))) {
// Take off the "simple_" and past get/post/put/delete to _simpleCall
$verb = str_replace('simple_', '', $method);
array_unshift($arguments, $verb);
return call_user_func_array(array($this, '_simpleCall'), $arguments);
}
}
So with call name simple_get() it translated to simpleFtpGet()
https://github.com/mogetutu/simplePHP-curl/blob/master/libraries/Curl.php
FTP CURL Download:
$local_file = "/tmp/filename.flv";//This is the file where we save the information
$remote_file = "http://www.test.com/filename.flv"; //Here is the file we are downloading
$ch = curl_init();
$fp = fopen ($local_file, 'w+');
$ch = curl_init($remote_file);
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_ENCODING, "");
curl_exec($ch);
curl_close($ch);
fclose($fp);
List file:
Use option LIST ONLY
// CURL ext instead of FTP. FTP php has some limit with NAT client and Active mode FTP server.
protected function curl_ftp_get($ftp, $user_id, $last_update)
{
if(empty($user_id)) {
return;
}
$local_path = resource_path('CRAWL_DATA'.DIRECTORY_SEPARATOR.'SWT_DRX'.DIRECTORY_SEPARATOR.$user_id.DIRECTORY_SEPARATOR);
if (!file_exists($local_path) && !is_dir($local_path)) {
mkdir($local_path, 0777, true);
}
$url = $ftp['server'];
// If there is no ftp:// or any protocol entered, add ftp://
if ( ! preg_match('!^(ftp|sftp)://! i', $url))
{
$url = 'ftp://' . $url;
}
// Use an FTP login
if ($ftp['username'] != '')
{
$auth_string = $ftp['username'];
if ($ftp['password'] != '')
{
$auth_string .= ':' . $ftp['password'];
}
// Add the user auth string after the protocol
$url = str_replace('://', '://' . $auth_string . '@', $url);
}
// Add the filepath
// $url .= $file_path;
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_FTPLISTONLY, 1);
curl_setopt($curl, CURLOPT_USERPWD, '"'.$ftp['username']. ':'. $ftp['password']. '"'); //"jonthompson:3lHwzN5l"
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// curl_setopt($curl, CURLOPT_VERBOSE, 1); // Be carefull
// curl_setopt($curl, CURLOPT_BINARYTRANSFER, 1);
// curl_setopt($curl, CURLOPT_TIMEOUT, 1);
// curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,0);
curl_setopt($ch, CURLOPT_TIMEOUT, 600);
$response = curl_exec($curl);
// Request failed
if ($response === FALSE)
{
// TODO handle msg error, use session to store option. curl_errno, curl_error
return FALSE;
}
// Request successful
else
{
// list file server
$return = trim($response);
$files = explode("\n", $return);
// filter file by timestamp
if($last_update) {
$newData = self::filterFileByTime($files, $last_update);
$files = array_values($newData);
// download file
curl_setopt($curl, CURLOPT_FTPLISTONLY, 0); // Disable list file. download it.
curl_setopt($curl, CURLOPT_BINARYTRANSFER, 1);
foreach($files as $file) {
$location = $url.'/'.$file;
curl_setopt($curl, CURLOPT_URL, $location);
curl_exec($curl);
}
}
curl_close ($curl);
// dd($files);
}
curl_close ($curl);
return;
}
* [__call description]
*
* @param string $method HTTP Methods
*
* @param string $arguments Arguments
*
* @return Response
*/
public function __call($method, $arguments)
{
if (in_array($method, array('simple_get', 'simple_post', 'simple_put', 'simple_delete'))) {
// Take off the "simple_" and past get/post/put/delete to _simpleCall
$verb = str_replace('simple_', '', $method);
array_unshift($arguments, $verb);
return call_user_func_array(array($this, '_simpleCall'), $arguments);
}
}
So with call name simple_get() it translated to simpleFtpGet()
https://github.com/mogetutu/simplePHP-curl/blob/master/libraries/Curl.php
FTP CURL Download:
$local_file = "/tmp/filename.flv";//This is the file where we save the information
$remote_file = "http://www.test.com/filename.flv"; //Here is the file we are downloading
$ch = curl_init();
$fp = fopen ($local_file, 'w+');
$ch = curl_init($remote_file);
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_ENCODING, "");
curl_exec($ch);
curl_close($ch);
fclose($fp);
List file:
Use option LIST ONLY
// CURL ext instead of FTP. FTP php has some limit with NAT client and Active mode FTP server.
protected function curl_ftp_get($ftp, $user_id, $last_update)
{
if(empty($user_id)) {
return;
}
$local_path = resource_path('CRAWL_DATA'.DIRECTORY_SEPARATOR.'SWT_DRX'.DIRECTORY_SEPARATOR.$user_id.DIRECTORY_SEPARATOR);
if (!file_exists($local_path) && !is_dir($local_path)) {
mkdir($local_path, 0777, true);
}
$url = $ftp['server'];
// If there is no ftp:// or any protocol entered, add ftp://
if ( ! preg_match('!^(ftp|sftp)://! i', $url))
{
$url = 'ftp://' . $url;
}
// Use an FTP login
if ($ftp['username'] != '')
{
$auth_string = $ftp['username'];
if ($ftp['password'] != '')
{
$auth_string .= ':' . $ftp['password'];
}
// Add the user auth string after the protocol
$url = str_replace('://', '://' . $auth_string . '@', $url);
}
// Add the filepath
// $url .= $file_path;
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_FTPLISTONLY, 1);
curl_setopt($curl, CURLOPT_USERPWD, '"'.$ftp['username']. ':'. $ftp['password']. '"'); //"jonthompson:3lHwzN5l"
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// curl_setopt($curl, CURLOPT_VERBOSE, 1); // Be carefull
// curl_setopt($curl, CURLOPT_BINARYTRANSFER, 1);
// curl_setopt($curl, CURLOPT_TIMEOUT, 1);
// curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,0);
curl_setopt($ch, CURLOPT_TIMEOUT, 600);
$response = curl_exec($curl);
// Request failed
if ($response === FALSE)
{
// TODO handle msg error, use session to store option. curl_errno, curl_error
return FALSE;
}
// Request successful
else
{
// list file server
$return = trim($response);
$files = explode("\n", $return);
// filter file by timestamp
if($last_update) {
$newData = self::filterFileByTime($files, $last_update);
$files = array_values($newData);
// download file
curl_setopt($curl, CURLOPT_FTPLISTONLY, 0); // Disable list file. download it.
curl_setopt($curl, CURLOPT_BINARYTRANSFER, 1);
foreach($files as $file) {
$location = $url.'/'.$file;
curl_setopt($curl, CURLOPT_URL, $location);
curl_exec($curl);
}
}
curl_close ($curl);
// dd($files);
}
curl_close ($curl);
return;
}
Comments
Post a Comment