function dfopen($url, $limit = 0, $post = '', $cookie = '', $bysocket = FALSE, $ip = '', $timeout = 15, $block = TRUE, $encodetype = 'URLENCODE') { //error_log("[uc_server]\r\nurl: $url\r\npost: $post\r\n\r\n", 3, 'c:/log/php_fopen.txt'); $return = ''; $matches = parse_url($url); $host = $matches['host']; $path = $matches['path'] ? $matches['path'] . ($matches['query'] ? '?' . $matches['query'] : '') : '/'; $port = !empty($matches['port']) ? $matches['port'] : 80; $ch = curl_init(); // set URL and other appropriate options curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); if ($post) { curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); } curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER[HTTP_USER_AGENT]); //curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); curl_setopt($ch, CURLOPT_COOKIE, $cookie); $return = curl_exec($ch); curl_close($ch); return $return; $f = new SaeFetchurl(); if (is_array($post)) { $f->setPostData($post); } if (is_array($cookie)) { foreach ($cookie as $name => $value) { $f->setCookie($name, $value); } } $return = $f->fetch($url); return $return; if ($post) { $out = "POST {$path} HTTP/1.0\r\n"; $out .= "Accept: */*\r\n"; //$out .= "Referer: $boardurl\r\n"; $out .= "Accept-Language: zh-cn\r\n"; $boundary = $encodetype == 'URLENCODE' ? '' : ';' . substr($post, 0, trim(strpos($post, "\n"))); $out .= $encodetype == 'URLENCODE' ? "Content-Type: application/x-www-form-urlencoded\r\n" : "Content-Type: multipart/form-data{$boundary}\r\n"; $out .= "User-Agent: {$_SERVER['HTTP_USER_AGENT']}\r\n"; $out .= "Host: {$host}:{$port}\r\n"; $out .= 'Content-Length: ' . strlen($post) . "\r\n"; $out .= "Connection: Close\r\n"; $out .= "Cache-Control: no-cache\r\n"; $out .= "Cookie: {$cookie}\r\n\r\n"; $out .= $post; } else { $out = "GET {$path} HTTP/1.0\r\n"; $out .= "Accept: */*\r\n"; //$out .= "Referer: $boardurl\r\n"; $out .= "Accept-Language: zh-cn\r\n"; $out .= "User-Agent: {$_SERVER['HTTP_USER_AGENT']}\r\n"; $out .= "Host: {$host}:{$port}\r\n"; $out .= "Connection: Close\r\n"; $out .= "Cookie: {$cookie}\r\n\r\n"; } if (function_exists('fsockopen')) { $fp = @fsockopen($ip ? $ip : $host, $port, $errno, $errstr, $timeout); } elseif (function_exists('pfsockopen')) { $fp = @pfsockopen($ip ? $ip : $host, $port, $errno, $errstr, $timeout); } else { $fp = false; } if (!$fp) { return ''; } else { stream_set_blocking($fp, $block); stream_set_timeout($fp, $timeout); @fwrite($fp, $out); $status = stream_get_meta_data($fp); if (!$status['timed_out']) { while (!feof($fp)) { if (($header = @fgets($fp)) && ($header == "\r\n" || $header == "\n")) { break; } } $stop = false; while (!feof($fp) && !$stop) { $data = fread($fp, $limit == 0 || $limit > 8192 ? 8192 : $limit); $return .= $data; if ($limit) { $limit -= strlen($data); $stop = $limit <= 0; } } } @fclose($fp); return $return; } }
function tbs($cookie = "") { $f = new SaeFetchurl(); $f->setCookie("BDUSS", $cookie); $content = $f->fetch("http://tieba.baidu.com/dc/common/tbs"); $tbs = explode('"', $content); return $tbs[3]; }