<?php
/**
* Socket版本
* 使用方法:
* $post_string = "app=socket&version=beta";
* request_by_socket('facebook.cn','/restServer.php',$post_string);
*/
function
request_by_socket
(
$remote_server
,
$remote_path
,
$post_string
,
$port
=
80
,
$timeout
=
30
){
$socket
=
fsockopen
(
$remote_server
,
$port
,
$errno
,
$errstr
,
$timeout
)
;
if
(
!
$socket
)
die
(
"
$errstr
(
$errno
)
"
)
;
fwrite
(
$socket
,
"
POST
$remote_path
HTTP/1.0
\r\n
"
)
;
fwrite
(
$socket
,
"
User-Agent: Socket Example
\r\n
"
)
;
fwrite
(
$socket
,
"
HOST:
$remote_server
\r\n
"
)
;
fwrite
(
$socket
,
"
Content-type: application/x-www-form-urlencoded
\r\n
"
)
;
fwrite
(
$socket
,
"
Content-length:
"
.
strlen
(
$post_string
)
.
"
\r\n
"
)
;
fwrite
(
$socket
,
"
Accept:*/*
\r\n
"
)
;
fwrite
(
$socket
,
"
\r\n
"
)
;
fwrite
(
$socket
,
"
$post_string
\r\n
"
)
;
fwrite
(
$socket
,
"
\r\n
"
)
;
$header
=
""
;
while
(
$str
=
trim
(
fgets
(
$socket
,
4096
)))
{
$header
.=
$str
;
}
$data
=
""
;
while
(
!
feof
(
$socket
))
{
$data
.=
fgets
(
$socket
,
4096
)
;
}
return
$data
;
}
/**
* Curl版本
* 使用方法:
* $post_string = "app=request&version=beta";
* request_by_curl('
http://facebook.cn/restServer.php
',$post_string);
*/
function
request_by_curl
(
$remote_server
,
$post_string
){
$ch
=
curl_init
()
;
curl_setopt
(
$ch
,
CURLOPT_URL
,
$remote_server
)
;
curl_setopt
(
$ch
,
CURLOPT_POSTFIELDS
,
$post_string
)
;
curl_setopt
(
$ch
,
CURLOPT_RETURNTRANSFER
,
true
)
;
curl_setopt
(
$ch
,
CURLOPT_USERAGENT
,
"
Jimmy's CURL Example beta
"
)
;
$data
=
curl_exec
(
$ch
)
;
curl_close
(
$ch
)
;
return
$data
;
}
/**
* 其它版本
* 使用方法:
* $post_string = "app=request&version=beta";
* request_by_other('
http://facebook.cn/restServer.php
',$post_string);
*/
function
request_by_other
(
$remote_server
,
$post_string
){
$context
=
array
(
'
http
'
=>
array
(
'
method
'
=>
'
POST
'
,
'
header
'
=>
'
Content-type: application/x-www-form-urlencoded
'
.
"
\r\n
"
.
'
User-Agent : Jimmy
\'
s POST Example beta
'
.
"
\r\n
"
.
'
Content-length:
'
.
strlen
(
$post_string
)
,
'
content
'
=>
$post_string
)
)
;
$stream_context
=
stream_context_create
(
$context
)
;
$data
=
file_get_contents
(
$remote_server
,
FALSE
,
$stream_context
)
;
return
$data
;
}
转载于:https://www.cnblogs.com/alon/archive/2009/10/13/1582323.html