这个get_text函数有什么作用?

时间:2013-07-06 19:23:47

标签: php

Panique在这个帖子上回答了一个问题做得很好:PHP directory list from remote server

但是他创造了一个我根本不懂的功能,希望得到某种解释。例如,随机8192号是什么?

function get_text($filename) {

    $fp_load = fopen("$filename", "rb");

    if ( $fp_load ) {

            while ( !feof($fp_load) ) {
                $content .= fgets($fp_load, 8192);
            }

            fclose($fp_load);

            return $content;

    }
}

3 个答案:

答案 0 :(得分:1)

它加载路径在$filename中的文件并返回其内容。 8192不是随机的。它意味着以 8kb 的块为单位读取文件。

只要文件未完全读取,while循环就会运行。每次迭代都会将最新的8kb文件添加到$content,并在函数末尾返回。

答案 1 :(得分:0)

它加载文件的数据。

For example, what's with the random 8192 number?

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

  

读取长度 - 读取1个字节或换行时(或   包含在返回值中)或EOF(以先到者为准)。   如果没有指定长度,它将继续从流中读取,直到   它到了终点。

答案 2 :(得分:0)

要打破它:

function get_text($filename) { //Defines the function, taking one argument - Filename, a string.

    $fp_load = fopen("$filename", "rb"); //Opens the file, with "read binary" mode.

    if ( $fp_load ) { // If it's loaded - fopen() returns false on failure

            while ( !feof($fp_load) ) { //Loop through, while feof() == false- feof() is returning true when finding a End-Of-File pointer
                $content .= fgets($fp_load, 8192); // appends the following 8192 bits (or newline, or EOF.)
            } //Ends the loop - obviously.

            fclose($fp_load); //Closes the stream, to the file.

            return $content; //returns the content of the file, as appended and created in the loop. 

    } // ends if
} //ends function

我希望这会有所帮助。

详细说明8192:

  

读取长度 - 读取1个字节,或换行(包含在返回值中)或EOF(以先到者为准)时结束。如果没有指定长度,它将继续从流中读取,直到它到达行尾。

来自:http://php.net/manual/en/function.fgets.php