首页 > 后端开发 > php教程 > php 获取远程内容,能否只建立一次连接,多次使用.解决方法

php 获取远程内容,能否只建立一次连接,多次使用.解决方法

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2016-06-13 13:27:49
原创
902 人浏览过

php 获取远程内容,能否只建立一次连接,多次使用.
例如:  
$ch = curl_init();
  $timeout = 30;
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  $contents = trim(curl_exec($ch));
 curl_close($ch);

目标地址的url 是稳定的,仅传递的参数有不同,
能否代码里仅为
 $timeout = 30;
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  $contents = trim(curl_exec($ch));
不用每次创立一个连接,和关闭一个连接。

------解决方案--------------------
CURLOPT_CUSTOMREQUEST
------解决方案--------------------

PHP code
[User:root Time:14:07:31 Path:/home/liangdong/php]$ php file.php 
HTTP/1.1 200 OK
Date: Thu, 10 May 2012 18:07:32 GMT
Server: Apache/2.4.1 (Unix) PHP/5.4.0
X-Powered-By: PHP/5.4.0
Set-Cookie: PHPSESSID=qi60b6s1q783a4pnj81rscdet4; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 257
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=utf-8

<div style="font-weight:normal;color:blue;float:left;width:345px;text-align:center;border:1px solid silver;background:#E8EFFF;padding:8px;font-size:14px;font-family:Tahoma">^_^ Hello,欢迎使用<span style="font-weight:bold;color:red">ThinkPHP</span>
</div>
GET / HTTP/1.1
Host: localhost
Accept: */*
Connection:Keep-alive

[User:root Time:14:07:32 Path:/home/liangdong/php]$ cat file.php 
<?php $curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://localhost');
curl_setopt($curl, CURLOPT_FORBID_REUSE, false);
curl_setopt($curl, CURLOPT_FRESH_CONNECT, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLINFO_HEADER_OUT, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Connection:Keep-alive'));
$res = curl_exec($curl);
if ($res !== false) {
        echo $res . PHP_EOL;
        $req = curl_getinfo($curl, CURLINFO_HEADER_OUT);
        print_r($req);
}
?>
[User:root Time:14:07:43 Path:/home/liangdong/php]$ <div class="clear">
                 
              
              
        
            </div>
登录后复制
相关标签:
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
curl 模拟登陆
来自于 1970-01-01 08:00:00
0
0
0
将cURL命令行转换为PHP cURL代码
来自于 1970-01-01 08:00:00
0
0
0
将命令行 cURL 转换为 PHP cURL
来自于 1970-01-01 08:00:00
0
0
0
php5.3与php5.5的curl的区别
来自于 1970-01-01 08:00:00
0
0
0
请教各位大神,php curl请求页面显示空白
来自于 1970-01-01 08:00:00
0
0
0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板