Your IP : 216.73.216.219


Current Path : /home/chauffn/vuzelia/2023/plugins/convertforms/aweber/wrapper/
Upload File :
Current File : /home/chauffn/vuzelia/2023/plugins/convertforms/aweber/wrapper/curl_response.php

<?php

/**
 * @package         Convert Forms
 * @version         3.2.11 Pro
 *
 * @author          Tassos Marinos <info@tassos.gr>
 * @link            http://www.tassos.gr
 * @copyright       Copyright © 2020 Tassos Marinos All Rights Reserved
 * @license         GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
 */

// No direct access
defined('_JEXEC') or die('Restricted access');

# CurlResponse
#
# Author  Sean Huber - shuber@huberry.com
# Date    May 2008
#
# A basic CURL wrapper for PHP
#
# See the README for documentation/examples or http://php.net/curl for more information
# about the libcurl extension for PHP -- http://github.com/shuber/curl/tree/master
#

class CurlResponse
{
	public $body    = '';
	public $headers = array();

	public function __construct($response)
	{
		# Extract headers from response
		$pattern = '#HTTP/\d\.\d.*?$.*?\r\n\r\n#ims';
		preg_match_all($pattern, $response, $matches);
		$headers = explode("\r\n", str_replace("\r\n\r\n", '', array_pop($matches[0])));

		# Extract the version and status from the first header
		$version_and_status = array_shift($headers);
		preg_match('#HTTP/(\d\.\d)\s(\d\d\d)\s(.*)#', $version_and_status, $matches);
		$this->headers['Http-Version'] = $matches[1];
		$this->headers['Status-Code']  = $matches[2];
		$this->headers['Status']       = $matches[2] . ' ' . $matches[3];

		# Convert headers into an associative array
		foreach ($headers as $header)
		{
			preg_match('#(.*?)\:\s(.*)#', $header, $matches);
			$this->headers[$matches[1]] = $matches[2];
		}

		# Remove the headers from the response body
		$this->body = preg_replace($pattern, '', $response);
	}

	public function __toString()
	{
		return $this->body;
	}

	public function headers()
	{
		return $this->headers;
	}
}