php - 在php中,rest如何加速 cURL?

  显示原文与译文双语对照的内容
136 1

我正在尝试从 Twitter 中获取嵌入 tweet 。所以,我使用cURL来获取 json 。我编写了一个小测试,但是测试在本地运行时大约需要 5秒。所以我不确定我在这里做了什么错误。

public function get_tweet_embed($tw_id) {
 $json_url ="https://api.twitter.com/1/statuses/oembed.json?id={$tw_id}&align=left&omit_script=true&hide_media=false";
 $ch = curl_init( $json_url );
 $start_time = microtime(TRUE);
 $JSON = curl_exec($ch);
 $end_time = microtime(TRUE);
 echo $end_time - $start_time;//5.7961111068726
 return $this->get_html($JSON);
}
private function get_html($embed_json) {
 $JSON_Data = json_decode($embed_json,true);
 $tw_embed_code = $JSON_Data["html"];
 return $tw_embed_code;
}

当我粘贴链接并从浏览器测试它时,它是非常快速的。

时间:原作者:0个回答

109 3

在PHP中,我观察到cURL在大多数环境下运行的速度很快,除了低CPU的网络性能。例如在MAMP安装的本地主机上,curl是快速的,在一个较大的amazon实例上,curl是快速的。但是在一个小型的托管主机上,我看到它有性能问题,它的连接速度明显慢一些。但是我不确定为什么要这么做。而且,它的速度不是 5秒。

为了帮助确定它的PHP或者环境,应该尝试通过 命令行 与curl交互。至少,如果它仍然是 5秒,则可以以将PHP代码排除为问题。

原作者:
73 4

加速的最终解决方案是

curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );

此致

原作者:
...