以更快的方式在线阅读在线json文件

时间:2012-04-09 15:20:40

标签: php json curl file-get-contents

我正在使用file_get_contents来阅读在线json网址 并且我没有安装cURL任何建议如何更快地提出我的请求

谢谢, 玛丽安娜

4 个答案:

答案 0 :(得分:1)

做一些简单的基准测试:

<?php
$start = microtime(true);
for ($i=0;$i<=10;$i++){
    $handle = fopen("http://example.com/", "r");
    while (!feof($handle)) {
        $result .= fread($handle, 1024);
    }
    fclose($handle);
}
$end = microtime(true);
$time = $end - $start;

echo "Did fopen test in $time seconds<br />\n";
?> 

在6.1602981090546秒内进行了fopen测试

<?php
//file_get_contents is basically a wrapper for the above fopen so hence not much of a difference
$start = microtime(true);
for ($i=0;$i<=10;$i++){
    $result = file_get_contents('http://example.com');
}
$end = microtime(true);
$time = $end - $start;

echo "Did file_get_contents test in $time seconds<br />\n";
?>

file_get_contents是否在6.5289459228516秒内测试

<?php
$start = microtime(true);
for ($i=0;$i<=10;$i++){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://example.com");
    curl_setopt($ch, CURLOPT_HEADER, 0);
    $result = curl_exec($ch);
}
$end = microtime(true);
$time = $end - $start;

echo "Did cUrl test in $time seconds<br />\n";
?>

crrl测试时间为2.9657130241394秒

cURL赢得了大家......寻找更好主人的时间

答案 1 :(得分:0)

无论哪种方式都很快 http://www.ebrueggeman.com/blog/php_benchmarking_fopen

不是更好。

答案 2 :(得分:0)

没有办法让你的请求更快。如果数据不会发生很大变化,您可以在本地缓存数据。

伪代码:

if (get_modification_time_of_file('cached.json') < time() - 300) {
    download_file()
} else {
    read_locally()
}

答案 3 :(得分:0)

您有2个选项。

1:使用fopen / file_get_contents函数

2:通过设置客户端桥并使用AJAX通过POST方法将其发送到php。然后使用json_decode在PHP上获取它。