Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP读取大型文件的更好方法,它不会使我的服务器挂起_Php_File_Parsing - Fatal编程技术网

使用PHP读取大型文件的更好方法,它不会使我的服务器挂起

使用PHP读取大型文件的更好方法,它不会使我的服务器挂起,php,file,parsing,Php,File,Parsing,我正试图用计算机读取一个巨大的文件(600万行,80mb) PHP中的以下语法: readfile("output.data"); 我必须读取这个文件,并且只显示这个巨大文件中的几行数据,现在我的问题是每当我包含这一行时,我的WAMP服务器都会被挂起 (readfile(“output.data”);)在我的php代码中,是否尝试过jQuery ajax <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jq

我正试图用计算机读取一个巨大的文件(600万行,80mb) PHP中的以下语法:

readfile("output.data");
我必须读取这个文件,并且只显示这个巨大文件中的几行数据,现在我的问题是每当我包含这一行时,我的WAMP服务器都会被挂起
readfile(“output.data”);
)在我的php代码中,

是否尝试过jQuery ajax

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
    $( document ).ready( function ()
    {
        $.ajax( {
            url: "myUrl.php",
            type: "GET",
            success: function ( R )
            {
                $( "#IDselector" ).html( R );
            },
            beforeSend: function ()
            {
                $( "#IDselector" ).html( "Loading" );
            }
        } )
    } );
</script>

$(文档).ready(函数()
{
$.ajax({
url:“myUrl.php”,
键入:“获取”,
成功:功能(R)
{
$(“#IDselector”).html(R);
},
beforeSend:函数()
{
$(“#IDselector”).html(“加载”);
}
} )
} );
在这里,您的
myUrl.php
文件将包含读取文件的逻辑和打印,AJAX将处理完成后的操作。(myUrl.php中您想要查看的所有数据必须像用户通常看到的那样打印出来。

值得读入以允许页面完全加载,然后读入额外数据


此外,请查看fopen、fread等。它们对于读取IMO文件和@SamSwift文件都很有用。

better对于@SamSwift来说,这绝对不适合代码审查。CR的规则#1是代码必须已经按预期工作。@Zak,此代码确实工作,只是速度慢,因此需要对代码进行检查以确保速度和准确性,也可以说它按预期工作,目的是读取文件,OP可以这样做,因此,代码按预期工作,但需要reviewing@SamSwift虽然代码审查可以审查代码以优化性能,但这里的问题不是代码运行太慢,而是代码根本没有完成运行。这是在调试领域(问题的措辞证明了这一点,例如“请帮我解决这个问题”)。您应该逐行阅读文件。请看这个答案。这个答案表明对OP的问题缺乏了解。OP的问题是,每当他调用
readfile
时,他的WAMP服务器就会挂起。使用Ajax并不能解决这个问题。@ AddHelLink,我在WAMP中使用了这个函数,当我遇到同样的事情时,它对我起了作用,所以我分享了解决我的问题的方法,如果你认为这是一个“缺乏理解”的问题,你能把这个扩展一下吗?OP的问题是WAMP由于将文件加载到内存而挂起;这可能是由于文件非常大。使用ajax并不能解决这个问题,因为OP仍然在做同样的事情,它只意味着您现在从浏览器异步获得响应,而不是作为主页加载的一部分。使用AJAX并不会改变OP试图将一个非常大的文件加载到内存中而不是逐行读取它的根本问题。@ARedHerring,谢谢你,我理解你现在所说的,至于我的回答:我只是分享我为解决OP遇到的同一问题所做的工作。很抱歉,这不是OP想要的,但正如我所说,这只是一次对我有用的经历:)