Skip to main content

Coding: Hide function name

/**
     * [__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

Popular posts from this blog

AWS Elasticache Memcached connection

https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/accessing-elasticache.html#access-from-outside-aws http://hourlyapps.blogspot.com/2010/06/examples-of-memcached-commands.html Access memcached https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/GettingStarted.AuthorizeAccess.html Zip include hidden file https://stackoverflow.com/questions/12493206/zip-including-hidden-files phpmemcachedadmin ~ phpMyAdmin or phpPgAdmin ... telnet mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com 11211 stats items stats cachedump 27 100 https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/VPCs.EC.html https://lzone.de/cheat-sheet/memcached VPC ID Security Group ID (sg-...) Cluster: The identifier for the cluster memcached1 Creation Time: The time (UTC) when the cluster was created January 9, 2019 at 11:47:16 AM UTC+7 Configuration Endpoint: The configuration endpoint of the cluster memcached1.ahgofe.cfg.usw1.cache.amazonaws.com:11211 St...

Simulate Fail2ban on Apache request spam with mod_evasive limitipconn ...

https://en.wikipedia.org/wiki/Manchu_alphabet https://en.wikipedia.org/wiki/Sweet_potato https://en.wikipedia.org/wiki/New_World_crops https://www.mdpi.com/journal/energies http://www.cired.net/publications/cired2007/pdfs/CIRED2007_0342_paper.pdf https://www.davidpashley.com/articles/writing-robust-shell-scripts/ trap command https://en.wikipedia.org/wiki/Race_condition https://unix.stackexchange.com/questions/172541/why-does-exit-1-not-exit-the-script exit 1 not work it seem { } brace bound fixed it. cat access_log | cut -d ' ' -f 1 > ip1 sort -n -t. -k1,1 -k2,2 -k3,3 -k4,4 | uniq -c | sort -n -r -s https://unix.stackexchange.com/questions/246104/unix-count-unique-ip-addresses-sort-them-by-most-frequent-and-also-sort-them https://stackoverflow.com/questions/20164696/how-to-block-spam-and-spam-bots-for-good-with-htaccess  Code: ------------------------------------------------------------------- #Block Spam Bots and Spam on your website #Block proxies...

Rocket.Chat DB schema

_raix_push_notifications avatars.chunks avatars.files instances meteor_accounts_loginServiceConfiguration meteor_oauth_pendingCredentials meteor_oauth_pendingRequestTokens migrations rocketchat__trash rocketchat_cron_history rocketchat_custom_emoji rocketchat_custom_sounds rocketchat_import rocketchat_integration_history rocketchat_integrations rocketchat_livechat_custom_field rocketchat_livechat_department rocketchat_livechat_department_agents rocketchat_livechat_external_message rocketchat_livechat_inquiry rocketchat_livechat_office_hour rocketchat_livechat_page_visited rocketchat_livechat_trigger rocketchat_message rocketchat_oauth_apps rocketchat_oembed_cache rocketchat_permissions rocketchat_raw_imports rocketchat_reports rocketchat_roles rocketchat_room rocketchat_settings rocketchat_smarsh_history rocketchat_statistics rocketchat_subscription rocketchat_uploads system.indexes users usersSessions https://rocket.chat/docs/developer-guides/sc...