Beispiel #1
0
 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;
     }
 }
Beispiel #2
0
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];
}