php fsockopen函数发送post,get请求获得网页内容,反防采集
$post =1; $url = parse_url ( $url ); $host = 'http://HdhCmsTestphpfensi测试数据' ; $path = '/' ; $query = '?action=phpfensi测试数据' ; $port =80; if ( $post ) { $out = "post $path http/1.0 " ; $out .= "accept: */* " ; //$out .= "referer: $boardurl "; $out .= "accept-language: zh-cn " ; $out .= "content-type: application/x-www-form-urlencoded " ; $out .= "user-agent: $_server[http_user_agent] " ; $out .= "host: $host " ; $out .= 'content-length: ' . strlen ( $post ). " " ; $out .= "connection: close " ; $out .= "cache-control: no-cache " ; $out .= "cookie: $cookie " ; $out .= $post ; } else { $out = "get $path http/1.0 " ; $out .= "accept: */* " ; //$out .= "referer: $boardurl "; $out .= "accept-language: zh-cn " ; $out .= "user-agent: $_server[http_user_agent] " ; $out .= "host: $host " ; $out .= "connection: close " ; $out .= "cookie: $cookie " ; } $fp = @ fsockopen (( $ip ? $ip : $host ), $port , $errno , $errstr , $timeout ); if (! $fp ) { return '' ; //note $errstr : $errno } else { return '成功访问' ; }fsockopen语法: resource fsockopen(string $hostname [,int $port = -1 [, int &$errno [,string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] )
启动一个套接字连接到指定的主机的资源,php支持在互联网领域的目标和unix在所支持的套接字传输列表说明,所支持的传输列表也可以检索使用stream_get_transports().
该插座预设会被启用,阻塞模式,你可以切换到非阻塞模式使用stream_set_blocking(),如果上面实例看不懂,就来看个简的吧,代码如下:
$fp = fsockopen ( "HdhCmsTestphpfensi测试数据" , 80, $errno , $errstr , 30); if (! $fp ) { echo "$errstr ($errno)
" ; } else { $out = "get / http/1.1 " ; $out .= "host: HdhCmsTestphpfensi测试数据" ; $out .= "connection: close " ; fwrite( $fp , $out ); while (! feof ( $fp )) { echo fgets ( $fp , 128); } fclose( $fp ); }查看更多关于php fsockopen函数发送post,get请求获得网页内容,反防的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did30965