Merge pull request #375 from tdevos/master

Use curl to get remote file content
remotes/origin/stable5
Thomas Müller 13 years ago
commit ac3e962732
  1. 11
      lib/ocsclient.php
  2. 39
      lib/util.php

@ -55,19 +55,10 @@ class OC_OCSClient{
* This function calls an OCS server and returns the response. It also sets a sane timeout * This function calls an OCS server and returns the response. It also sets a sane timeout
*/ */
private static function getOCSresponse($url) { private static function getOCSresponse($url) {
// set a sensible timeout of 10 sec to stay responsive even if the server is down. $data = \OC_Util::getUrlContent($url);
$ctx = stream_context_create(
array(
'http' => array(
'timeout' => 10
)
)
);
$data=@file_get_contents($url, 0, $ctx);
return($data); return($data);
} }
/** /**
* @brief Get all the categories from the OCS server * @brief Get all the categories from the OCS server
* @returns array with category ids * @returns array with category ids

@ -669,4 +669,43 @@ class OC_Util {
return false; return false;
} }
/**
* @Brief Get file content via curl.
* @param string $url Url to get content
* @return string of the response or false on error
* This function get the content of a page via curl, if curl is enabled.
* If not, file_get_element is used.
*/
public static function getUrlContent($url){
if (function_exists('curl_init')) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curl, CURLOPT_URL, $url);
$data = curl_exec($curl);
curl_close($curl);
} else {
$ctx = stream_context_create(
array(
'http' => array(
'timeout' => 10
)
)
);
$data=@file_get_contents($url, 0, $ctx);
}
return $data;
}
} }

Loading…
Cancel
Save