发布
社区首页 >问答首页 >显示页面中的一些信息

显示页面中的一些信息
EN

Stack Overflow用户
提问于 2013-04-25 02:35:11
回答 2查看 73关注 0票数 1

我正在为Minecraft服务器制作一个控制台查看器,但当我到达只需要在浏览器中显示文本的阶段时,它不会让我出现以下错误:

致命错误:第17行的C:\xampp\htdocs\testingfile.php中允许的内存大小134217728字节已耗尽(尝试分配36字节)

我猜它不会显示是因为文件太大了吗?文件大小约为4.5MB。我想要显示文件中最近的10行。

下面是我的代码:

代码语言:javascript
代码运行次数:0
复制
    <?php

// define some variables
$local_file = 'C:\Users\Oscar\Desktop\worked.txt';
$server_file = 'NN7776801/server.log';
$ftp_server="Lol.Im.Not.Thick";
$ftp_user_name="Jesus";
$ftp_user_pass="ReallyLongPassWordThatYouWontGuessLolGoodLuckMateGuessingThisPass";

$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// try to download $server_file and save to $local_file
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
    $contents = file($local_file); 
    $string = implode($contents); 
    echo $string;


    for ($i = 0; $i < 6; $i++) {
    echo $local_file[$i] . "\n";
}
}
else {
    echo "There was a problem\n";
}
// close the connection
ftp_close($conn_id);

?>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-25 02:37:26

php.ini变量中增加以下值,这样页面执行就不会停止:

代码语言:javascript
代码运行次数:0
复制
max_input_time
memory_limit
max_execution_time

要获得10行代码,您可以尝试如下所示:

代码语言:javascript
代码运行次数:0
复制
$filearray = file("filename");
$lastfifteenlines = array_slice($filearray,-15);

或者使用函数:

代码语言:javascript
代码运行次数:0
复制
function read_last_lines($fp, $num)
{
    $idx   = 0;

    $lines = array();
    while(($line = fgets($fp)))
    {
        $lines[$idx] = $line;
        $idx = ($idx + 1) % $num;
    }

    $p1 = array_slice($lines,    $idx);
    $p2 = array_slice($lines, 0, $idx);
    $ordered_lines = array_merge($p1, $p2);

    return $ordered_lines;
}

// Open the file and read the last 15 lines
$fp    = fopen('C:\Users\Oscar\Desktop\worked.txt';', 'r');
$lines = read_last_lines($fp, 10);
fclose($fp);

// Output array 
 echo '<pre>'.print_r($my_array).'</pre>';

要打印内容,请添加以下内容:

代码语言:javascript
代码运行次数:0
复制
$withlines= implode ("<br>\n",$my_array); //Change $my_array with the name you used!
echo $withlines;
票数 0
EN

Stack Overflow用户

发布于 2013-04-25 03:28:31

如果只需要最后10行,可以使用tail

代码语言:javascript
代码运行次数:0
复制
$lines = `tail -n 10 $local_file`;

还有一些关于如何使用here获取最后几行的信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16199650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档