使用fsockopen()函数比fopen()函数的优点:fopen()只会在PHP中已经将allow_url_fopen设置为真时才能使用,而fsockopen()并没有限制。
参考: http://php.net/manual/zh/function.fsockopen.php
最近要用到通过post上传文件,网上盛传的有curl的post提交和fsockopen,其中curl最简单,于是从最简单的`说起。
这是简单的将一个变量post到另外一个页面
?
1
2
3
4
5
6
7
8
9
$url = ''
$data = array('a'=>'b')
$ch = curl_init()
curl_setopt($ch, CURLOPT_URL, $url)
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1)
curl_setopt($ch, CURLOPT_POST, true)
curl_setopt($ch, CURLOPT_POSTFIELDS, $data)
$ret = curl_exec($ch)
curl_close($ch)
主要说下这个选项CURLOPT_RETURNTRANSFER:如果设置为true/1,则curl_exec的时候不会自动将请求网页的内容输出到屏幕,$ret为请求网页的内容,如果设置为false/0,则curl_exec的时候会自动将请求网页的内容输出到屏幕,此时如果请求成功的话$ret的内容是1或者true。
下面是上传本地文件的代码,如果需要上传远程文件,则先down到本地,然后删掉即可(如有同学有别的办法还请告知):
?
1
2
3
4
5
6
7
8
9
10
$url = ''
$file = '1.jpg'
$field['uploadFile'] = '@'.$file(uploadFile为接收端的name名)
$ch = curl_init()
curl_setopt($ch, CURLOPT_URL, $url)
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1)
curl_setopt($ch, CURLOPT_POST, 1)
curl_setopt($ch, CURLOPT_POSTFIELDS, $field)
$ret = curl_exec($ch)
curl_close($ch)
这是fsockopen的办法:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)