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

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-13 13:27:49903browse

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>
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn