javascript - 在网站上炫耀一个巨大的文本文件

标签 javascript php html

好的,所以我有一个巨大的文本文件(大约 2 GB),它有大约 20 亿行。 到目前为止我所尝试的是

$myfile = fopen("C:\Users\server\Desktop\primes.txt", "r") or die("Unable to 
open file!");
while(!feof($myfile)) {
    echo fgets($myfile) . "<br>";
}
fclose($myfile);

但有一个问题,没有完成所有的行,并在第一季度的某个地方挂断了——而且它也需要很长时间才能加载。 我试过的第二件事是这个

$path="C:/Users/server/Desktop/Server files/application.windows64/";
$file="primes.txt";

//read file contents
$content="
        <code>
            <pre>".file_get_contents("$path/$file")."</pre>
        </code>";

//display
echo $content;

但它甚至没有加载线。

另外,我不能直接打开这个文件,它必须在我的桌面上。请不要建议我将其复制或移动到另一个目录。

我能得到任何帮助我相处的建议,或者至少能解释为什么它不起作用吗?

对不起,我的英语不太好。

最佳答案

   $attachment_location = $_SERVER["DOCUMENT_ROOT"] . $file;
    if (file_exists($attachment_location)) {

        header($_SERVER["SERVER_PROTOCOL"] . " 200 OK");
        header("Cache-Control: public");
        header("Content-Type: text/plain");
        header("Content-Length:" . filesize($attachment_location));
        header("Content-Disposition: attachment; filename=file.txt");
        readfile($attachment_location);
        die();        
    } else {
        die("Error: File not found.");
    } 

它不起作用,因为它是一个 2 gig 文件,您正试图将它输出到屏幕上,而不是允许用户下载它或在他们的个人计算机上打开它。这应该是传递此文件的唯一方式。 2 gigs 输出到浏览器窗口可能会使客户端和服务器之一或两者崩溃。

http://php.net/manual/en/function.readfile.php

如果您真的想实际显示该文件,从技术上讲,可以使用分页器显示文件的特定百分比,单击该分页器将在文件的不同部分之间切换。

http://php.net/manual/en/function.fseek.php

关于javascript - 在网站上炫耀一个巨大的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45516719/

相关文章:

php - MYSQL 连接检索结果

Javascript/AngularJS - 按顺序将字符串转换为数字

javascript - 在javascript中更新总价

javascript - 使用 vega 创建更新的词云

php - 如何安装PHPRedmin?

php - 通过 PHP 将 MySQL 数据库显示为 HTML 编码表

javascript - 查询阻止从 php 提交响应时的表单

javascript - 如何让 3 个 div 在容器内水平对齐,高度为 100%

javascript - 用户在提交后刷新页面会不会有问题?

javascript - tinymce 与 mvc 没有选择器名称称为tinymce-textarea?