【问题标题】:Optimize PHP cURL and explode优化 PHP cURL 并爆炸
【发布时间】:2014-01-13 23:41:51
【问题描述】:

我正在使用 PHP 的 cURL 和 explode 方法从 Reddit 帖子页面远程提取赞成票。

这很慢,从按钮点击到数据返回之间需要几秒钟,我的问题是,我怎样才能加快速度?我在哪里可以优化这个? cURL 获取 URL 是慢还是爆炸页面慢?

以下是我如何定位 upvote div 并获取其内容:

function between($src, $start, $end){
    $txt = explode($start, $src);
    $txt2 = explode($end, $txt[1]);
    return trim($txt2[0]);
}

$title = between($data, '<div class="score unvoted">','</div>');

这是我用来从 Reddit 获取页面数据的函数。

function get_data($url) {
  $ch = curl_init();
  $timeout = 5;
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
  $data = curl_exec($ch);
  curl_close($ch);
  return $data;
}

【问题讨论】:

  • 大部分时间可能是 cURL。使用带有时间戳的 echo 进行一些分析。
  • 分析?你能详细说明一下吗?谢谢。
  • 在开始之前回显时间,然后在卷曲之后回显,最后在爆炸之后回显。比较这些时间戳会告诉你大部分时间都花在了哪里。
  • 如果大部分时间都花在卷曲上(我怀疑),那么您很可能受到带宽的限制,而且您无能为力。获取远程页面是一个缓慢的过程。
  • @JacksonGariety 您可以尝试使用 IP 地址而不是域名,因为 DNS 查找可能需要“一些”时间...

标签: php optimization curl explode


【解决方案1】:

可能值得研究像 WebGrind 这样的分析工具,以了解慢速直接发生在哪里。

可能是 cURL 拖慢了您的页面速度,但如果没有分析,您无法确定。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    • 2021-09-20
    相关资源
    最近更新 更多