87 lines
1.9 KiB
PHP
87 lines
1.9 KiB
PHP
|
<?php
|
||
|
// addnews ready
|
||
|
// translator ready
|
||
|
// mail ready
|
||
|
|
||
|
function _curl($url)
|
||
|
{
|
||
|
$ch = curl_init();
|
||
|
if (!$ch) return false;
|
||
|
|
||
|
// set URL and other appropriate options
|
||
|
curl_setopt($ch, CURLOPT_URL, $url);
|
||
|
curl_setopt($ch, CURLOPT_HEADER, 0);
|
||
|
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
|
||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||
|
|
||
|
$val = 5;
|
||
|
if (defined("DB_CONNECTED") && DB_CONNECTED==true) {
|
||
|
require_once("lib/settings.php");
|
||
|
$val = getsetting("curltimeout", 5);
|
||
|
}
|
||
|
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $val);
|
||
|
curl_setopt($ch, CURLOPT_TIMEOUT, $val);
|
||
|
|
||
|
// grab URL and pass it to the browser
|
||
|
$ret = curl_exec($ch);
|
||
|
|
||
|
// close curl resource, and free up system resources
|
||
|
curl_close($ch);
|
||
|
|
||
|
//$val = split("\n", $ret);
|
||
|
$val = explode("\n", $ret);
|
||
|
$total = count($val);
|
||
|
$cur = 0;
|
||
|
foreach($val as $k=>$a) {
|
||
|
$cur++;
|
||
|
$done[] = $a.($cur != $total ? "\n" : "");
|
||
|
}
|
||
|
return $done;
|
||
|
}
|
||
|
|
||
|
function _sock($url)
|
||
|
{
|
||
|
$a = preg_match("!http://([^/:]+)(:[0-9]+)?(/.*)!", $url, $matches);
|
||
|
if (!$a) return false;
|
||
|
|
||
|
$host = $matches[1];
|
||
|
$port = (int) $matches[2];
|
||
|
if ($port == 0) $port = 80;
|
||
|
$path = $matches[3];
|
||
|
|
||
|
$f = @fsockopen($host, $port, $errno, $errstr, 1);
|
||
|
if (!$f) return false;
|
||
|
|
||
|
if (function_exists("stream_set_timeout")) stream_set_timeout($f, 1);
|
||
|
|
||
|
$out = "GET $path HTTP/1.1\r\n";
|
||
|
$out .= "Host: $host\r\n";
|
||
|
$out .= "Connection: Close\r\n\r\n";
|
||
|
|
||
|
fwrite($f, $out);
|
||
|
$skip = 1;
|
||
|
$done = array();
|
||
|
|
||
|
while(!feof($f)) {
|
||
|
$buf = fgets($f, 8192);
|
||
|
if ($buf == "\r\n" && $skip) { $skip = 0; continue; }
|
||
|
if (!$skip) $done[] = $buf;
|
||
|
}
|
||
|
$info = stream_get_meta_data($fp);
|
||
|
fclose($f);
|
||
|
if ($info['timed_out']) {
|
||
|
debug("Call to $url timed out!");
|
||
|
$done = false;
|
||
|
}
|
||
|
return $done;
|
||
|
}
|
||
|
|
||
|
function pullurl($url)
|
||
|
{
|
||
|
//if (function_exists("curl_init")) return _curl($url);
|
||
|
// For sume reason the socket code isn't working
|
||
|
//if (function_exists("fsockopen")) return _sock($url);
|
||
|
return @file($url);
|
||
|
}
|
||
|
?>
|