ok
Direktori : /home/institutonamaste/www/admin/js/kcfinder/lib/ |
Current File : /home/institutonamaste/www/admin/js/kcfinder/lib/helper_phpGet.php |
<?php /** This file is part of KCFinder project * * @desc Helper class for downloading URLs * @package KCFinder * @version 3.12 * @author Pavel Tzonkov <sunhater@sunhater.com> * @copyright 2010-2014 KCFinder Project * @license http://opensource.org/licenses/GPL-3.0 GPLv3 * @license http://opensource.org/licenses/LGPL-3.0 LGPLv3 * @link http://kcfinder.sunhater.com */ namespace kcfinder; class phpGet { static public $methods = array('curl', 'fopen', 'http', 'socket'); static public $urlExpr = '/^([a-z]+):\/\/((([\p{L}\d\-]+\.)+[\p{L}]{1,4})(\:(\d{1,6}))?(\/.*)*)?$/u'; static public $socketExpr = '/^[A-Z]+\/\d+(\.\d+)\s+\d+\s+OK\s*([a-zA-Z0-9\-]+\:\s*[^\n]*\n)*\s*([a-f0-9]+\r?\n)?(.*)$/s'; static public function get($url, $file=null, $method=null) { if ($file === true) $file = basename($url); if ($file !== null) { if (is_dir($file)) $file = rtrim($file, '/') . '/' . basename($url); $exists = file_exists($file); if (!@touch($file)) return false; if (!$exists) @unlink($file); } if (in_array($method, self::$methods, true)) { $check = "check_$method"; $get = "get_$method"; if (self::$check()) $content = self::$get($url); else return false; } else { foreach (self::$methods as $m) { $check = "check_$m"; $get = "get_$m"; if (self::$check()) { $content = self::$get($url); if ((($method !== true) && (strtolower($method) != "all")) || ($content !== false) ) break; } } if (!isset($content)) return false; } return ($file !== null) ? @file_put_contents($file, $content) : $content; } static public function get_fopen($url) { return @file_get_contents($url); } static public function get_curl($url) { return ( (false !== ( $curl = @curl_init($url) )) && ( @ob_start() || (@curl_close($curl) && false)) && ( @curl_exec($curl) || (@curl_close($curl) && false)) && ((false !== ( $content = @ob_get_clean() )) || (@curl_close($curl) && false)) && ( @curl_close($curl) || true) ) ? $content : false; } static public function get_http($url) { return ( (false !== ($content = @http_get($url))) && ( ( preg_match(self::$socketExpr, $content, $match) && false !== ($content = $match[4]) ) || true ) ) ? $content : false; } static public function get_socket($url) { if (!preg_match(self::$urlExpr, $url, $match)) return false; $protocol = $match[1]; $host = $match[3]; $port = strlen($match[6]) ? $match[6] : 80; $path = strlen($match[7]) ? $match[7] : "/"; $cmd = "GET $path " . strtoupper($protocol) . "/1.1\r\n" . "Host: $host\r\n" . "Connection: Close\r\n\r\n"; if ((false !== ( $socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP) )) && (false !== @socket_connect($socket, $host, $port) ) && (false !== @socket_write($socket, $cmd, strlen($cmd)) ) && (false !== ( $content = @socket_read($socket, 2048) )) ) { do { $piece = @socket_read($socket, 2048); $content .= $piece; } while ($piece); $content = preg_match(self::$socketExpr, $content, $match) ? $match[4] : false; } if (isset($socket) && is_resource($socket)) @socket_close($socket); else return false; return isset($content) ? $content : false; } static private function check_fopen() { return ini_get('allow_url_fopen') && function_exists('file_get_contents'); } static private function check_curl() { return function_exists('curl_init') && function_exists('curl_exec') && function_exists('curl_close') && function_exists('ob_start') && function_exists('ob_get_clean'); } static private function check_http() { return function_exists('http_get'); } static private function check_socket() { return function_exists('socket_create') && function_exists('socket_connect') && function_exists('socket_write') && function_exists('socket_read') && function_exists('socket_close'); } }