b0y-101 Mini Shell


Current Path : E:/www/pl/plugins/system/cachecleaner/src/Api/
File Upload :
Current File : E:/www/pl/plugins/system/cachecleaner/src/Api/CDN77.php

<?php
/**
 * @package         Cache Cleaner
 * @version         7.3.3
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2020 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

/*
 * Library for the KeyCDN API
 *
 * @author Tobias Moser
 * @version 0.1
 *
 */

use Joomla\CMS\Factory as JFactory;
use RegularLabs\Plugin\System\CacheCleaner\Cache;

class CDN77
{
	public $login;
	public $passwd;
	public $api = 'https://api.cdn77.com/v2.0/data/purge-all';

	public function __construct($login, $passwd)
	{
		$this->login  = $login;
		$this->passwd = $passwd;
	}

	public function purge($id)
	{
		$params = [
			'login'  => $this->login,
			'passwd' => $this->passwd,
			'cdn_id' => $id,
		];

		// start with curl and prepare accordingly
		$ch = curl_init();

		// send query-str within url or in post-fields
		curl_setopt($ch, CURLOPT_POST, 1);
		curl_setopt($ch, CURLOPT_POSTFIELDS, $params);

		// url
		curl_setopt($ch, CURLOPT_URL, $this->api);
		curl_setopt($ch, CURLOPT_FORBID_REUSE, true);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

		// retrieve headers
		curl_setopt($ch, CURLOPT_HEADER, 1);
		curl_setopt($ch, CURLINFO_HEADER_OUT, 1);

		// set curl timeout
		curl_setopt($ch, CURLOPT_TIMEOUT, 60);

		// Proxy configuration
		$config = JFactory::getConfig();

		if ($config->get('proxy_enable'))
		{
			curl_setopt($ch, CURLOPT_PROXY, $config->get('proxy_host') . ':' . $config->get('proxy_port'));

			if ($user = $config->get('proxy_user'))
			{
				curl_setopt($ch, CURLOPT_PROXYUSERPWD, $user . ':' . $config->get('proxy_pass'));
			}
		}

		// make the request
		$result     = curl_exec($ch);
		$headers    = curl_getinfo($ch);
		$curl_error = curl_error($ch);

		curl_close($ch);

		// get json_output out of result (remove headers)
		$json_output = substr($result, $headers['header_size']);

		// error catching
		if ( ! empty($curl_error) || empty($json_output))
		{
			Cache::writeToLog('cdn77', 'Error: ' . $curl_error . ', Output: ' . $json_output);

			return 'CDN77-Error: ' . $curl_error . ', Output: ' . $json_output;
		}

		return $json_output;
	}
}

Copyright © 2019 by b0y-101