GET&使用file_get_contents()删除非常慢

时间:2015-02-25 04:49:27

标签: php performance file-get-contents

我使用服务器M 中的file_get_contents()来获取服务器X 的响应。结果是成功,但需要很长时间。

$url  = "http://10.20.30.40";
$opts = array('http' =>
    array(
        'method' => 'GET',
        'header' => 'Connection: close\r\n'
    )
);
$context = stream_context_create($opts);
$result  = file_get_contents($url, false, $context);
$result = json_decode($result);
$response = parse_http_response_header($http_response_header);
print_r($result);
print_r($response);

    /////// below is just function to parse the response ///////
function parse_http_response_header(array $headers)
{
    $responses = array();
    $buffer = NULL;
    foreach ($headers as $header)
    {
        if ('HTTP/' === substr($header, 0, 5))
        {
            // add buffer on top of all responses
            if ($buffer) array_unshift($responses, $buffer);
            $buffer = array();
            list($version, $code, $phrase) = explode(' ', $header, 3) + array('', FALSE, '');
            $buffer['status'] = array(
                'line' => $header,
                'version' => $version,
                'code' => (int) $code,
                'phrase' => $phrase
            );
            $fields = &$buffer['fields'];
            $fields = array();
            continue;
        }
        list($name, $value) = explode(': ', $header, 2) + array('', '');
        // header-names are case insensitive
        $name = strtoupper($name);
        // values of multiple fields with the same name are normalized into
        // a comma separated list (HTTP/1.0+1.1)
        if (isset($fields[$name]))
        {
            $value = $fields[$name].','.$value;
        }
        $fields[$name] = $value;
    }
    unset($fields); // remove reference
    array_unshift($responses, $buffer);
    return $responses;
}

是否有任何建议或功能选项可以获得响应(内容和响应代码)更快? (注意:我不允许安装cURL,所以请提供其他选项)

0 个答案:

没有答案