%PDF- %PDF-
| Direktori : /home1/lightco1/www/administrator/components/com_jmap/framework/seostats/helper/ |
| Current File : //home1/lightco1/www/administrator/components/com_jmap/framework/seostats/helper/httpcurl.php |
<?php
// namespace administrator\components\com_jmap\framework\seostats\helper;
/**
*
* @package JMAP::SEOSTATS::administrator::components::com_jmap
* @subpackage seostats
* @subpackage helper
* @author Joomla! Extensions Store
* @copyright (C) 2015 - Joomla! Extensions Store
* @license GNU/GPLv2 http://www.gnu.org/licenses/gpl-2.0.html
*/
defined ( '_JEXEC' ) or die ( 'Restricted access' );
/**
* HTTP Request Helper Class based on CURL lib
*
* @package JMAP::SEOSTATS::administrator::components::com_jmap
* @subpackage seostats
* @subpackage helper
* @since 3.0
*/
class JMapSeostatsHelperHttpcurl {
/**
* HTTP GET/POST request with curl
*
* @access public
* @param String $url
* The Request URL
* @param Array $postData
* Optional: POST data array to be send.
* @return Mixed On success, returns the response string.
* Else, the the HTTP status code received
* in reponse to the request.
*/
public static function sendRequest($url, $postData = false, $postJson = false) {
// Dummy User Agent
$ua = sprintf ( 'JSitemap Professional %s http://storejextensions.org', strval(simplexml_load_file(JPATH_COMPONENT_ADMINISTRATOR . '/jmap.xml')->version) );
$ch = curl_init ( $url );
curl_setopt_array ( $ch, array (
CURLOPT_USERAGENT => $ua,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_CONNECTTIMEOUT => 15,
CURLOPT_MAXREDIRS => 2,
CURLOPT_SSL_VERIFYPEER => 0
) );
if(!ini_get('open_basedir')) {
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
}
if (false !== $postData) {
if (false !== $postJson) {
curl_setopt ( $ch, CURLOPT_HTTPHEADER, array (
'Content-type: application/json'
) );
$data = json_encode ( $postData );
} else {
$data = http_build_query ( $postData );
}
curl_setopt ( $ch, CURLOPT_POST, 1 );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );
}
$response = curl_exec ( $ch );
$httpCode = curl_getinfo ( $ch, CURLINFO_HTTP_CODE );
curl_close ( $ch );
// Connection success?
if((int) $httpCode != 200 & !$response) {
throw new JMapException(JText::_('COM_JMAP_NO_SERVICE_ANSWER'), 'notice');
}
return (200 == ( int ) $httpCode) ? $response : false;
}
/**
* HTTP HEAD request with curl
*
* @access public
* @static
* @param String $a
* The request URL
* @return Integer Returns the HTTP status code received in
* response to a GET request of the input URL.
*/
public static function getHttpCode($url) {
// Dummy User Agent
$ua = sprintf ( 'JSitemap Professional %s http://storejextensions.org', strval(simplexml_load_file(JPATH_COMPONENT_ADMINISTRATOR . '/jmap.xml')->version) );
$ch = curl_init ( $url );
curl_setopt_array ( $ch, array (
CURLOPT_USERAGENT => $ua,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => 1,
CURLOPT_MAXREDIRS => 2,
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_NOBODY => 1
) );
curl_exec ( $ch );
$httpCode = curl_getinfo ( $ch, CURLINFO_HTTP_CODE );
curl_close ( $ch );
return ( int ) $httpCode;
}
/**
* * HTTP GET/POST request with curl written to a response file
*
* @access public
* @static
* @param String $a
* The request URL
* @return Integer Returns the HTTP status code received in
* response to a GET request of the input URL.
*/
public function getFile($url, $file) {
// Dummy User Agent
$ua = sprintf ( 'JSitemap Professional %s http://storejextensions.org', strval(simplexml_load_file(JPATH_COMPONENT_ADMINISTRATOR . '/jmap.xml')->version) );
$fp = fopen ( "$file", 'w' );
$ch = curl_init ( $url );
curl_setopt_array ( $ch, array (
CURLOPT_USERAGENT => $ua,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_CONNECTTIMEOUT => 30,
CURLOPT_FOLLOWLOCATION => 1,
CURLOPT_MAXREDIRS => 2,
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_FILE => $fp
) );
curl_exec ( $ch );
curl_close ( $ch );
fclose ( $fp );
clearstatcache ();
return ( bool ) (false !== stat ( $file ));
}
}