【问题标题】:How to detect internet speed in PHP?如何在 PHP 中检测互联网速度?
【发布时间】:2011-07-28 15:04:30
【问题描述】:

如何创建一个 PHP 页面来检测用户的互联网速度并将其显示在页面上?类似的,

你的网速是??? Kbps

【问题讨论】:

  • php 脚本在服务器中执行,猜想这不会决定用户的网速……而 flash 或 java 会这样做。

标签: php performance


【解决方案1】:

这可能不完全是您正在寻找的(阅读粗体部分),但我怀疑是否还有其他可能。

此脚本向您的客户端发送 512 KB 的 HTML cmets。解析 HTML 可能会增加总传输时间,因此不要将此作为原始下载速度。

引用自:PHP Speed test

来源在这里:

http://jan.moesen.nu/code/php/speedtest/index.php?source=1

希望对您有所帮助。

【讨论】:

    【解决方案2】:
    <?php
    $kb=1024;
    echo "streaming $kb Kb...<!-";
    flush();
    $time = explode(" ",microtime());
    $start = $time[0] + $time[1];
    for($x=0;$x<$kb;$x++){
        echo str_pad('', 1024, '.');
        flush();
    }
    $time = explode(" ",microtime());
    $finish = $time[0] + $time[1];
    $deltat = $finish - $start;
    echo "-> Test finished in $deltat seconds. Your speed is ". round($kb / $deltat, 3)."Kb/s";
    ?>
    

    【讨论】:

    • 不要点击进入 triquitips 演示 URL,该站点提供了脚本的演示,似乎试图自动订阅某些内容。
    • @Exit - 我从帖子中删除了链接。 (我不确定它是否是恶意的,我宁愿不知道!)
    【解决方案3】:

    例如通过在客户端计时 AJAX 请求。这样你就可以计算出大概的下载速度,但不能上传。对于上传,发送大的 AJAX POST 请求即可处理。

    使用 jQuery 和 $.ajax 非常简单。

    【讨论】:

    • 你只需要考虑 Comcast 的 Powerboost 之类的东西。
    • 如果你提供一个代码示例,我想你会得到更多的支持。
    【解决方案4】:

    通过用户将文件上传到您的服务器。然后将文件大小(以 kb 为单位)除以以秒为单位的时间。然后你会得到 kb/s(上传速度)。

    $kb = round(filesize("file.jpg") / 1024); // 500kb
    $time = time() - $start; // 5s
    $speed = round($kb / $time); // 100kb/s
    

    【讨论】:

    • 但是,$start 是什么?
    【解决方案5】:

    这对我有用:

        $kb=512;
        echo "streaming $kb Kb...<!-";
        flush();
        $time = explode(" ",microtime());
        $start = $time[0] + $time[1];
        for($x=0;$x<$kb;$x++){
            echo str_pad('', 1024, '.');
            flush();
        }
        $time = explode(" ",microtime());
        $finish = $time[0] + $time[1];
        $deltat = $finish - $start;
        echo "-> Test finished in $deltat seconds. Your speed is ". round($kb / $deltat, 3)."Kb/s";
        ?>
    

    我是从 here 那里得到的。

    【讨论】:

      【解决方案6】:

      真的不可能。 PHP是服务器端的,检测速度将是客户端的。

      您可能会找到解决方法来做到这一点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-19
        • 2017-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多