在php中读取文本文件的前3000个字节

ver*_*ger 1 php

解决了!我使用了一个现有的 json 文件,我用来在页面上显示图表。

我有一个 2000 行的文本文件。我想将前 3000 个字节读入一个 php 变量。这有效,但仅以读取整个文本文件为代价:

$little_diagrams = ('assets/diagrams.txt'); $mason = file($little_diagrams);
Run Code Online (Sandbox Code Playgroud)

我试过这个,但它不起作用。关于为什么的任何想法?

$little_diagrams  = file_get_contents("assets/diagrams.txt", NULL, NULL, 0, 3000);

$mason = file($little_diagrams); 
Run Code Online (Sandbox Code Playgroud)

麻烦的是我必须处理“assets/diagrams.txt”中的行,例如:2833|6979|Poloskov|||Nikolayev|Igor|2272|1n3rk1/3p1ppp/5q2/2p1P3/2B2P2/r2Q2P1/1b3N2P/1R

2832|6979|波洛斯科夫|||尼古拉耶夫|伊戈尔|2272|r2qk2r/1b1p1ppp/n4b2/2pN4/2B1P3/8/PP3PPP/R2QK1NR| 2831|6978|Nikolayev|Igor|2272|Buturin|Vladimir (IM)|2405|r3r1k1/1ppb1pp1/3p1n1p/2nP4/p3P3/4NP2/PPBN1KPP/R3R3| 2830|6978|Nikolayev|Igor|2272|Buturin|Vladimir (IM)|2405|r2qr1k1/1ppb1pp1/p1np1n1p/8/3PP3/4NN2/PPB2PPP/R2Q1RK1|

2829|6977|Nikolayev|Igor|2272|Tabatadze|Tamaz|2288|2rqk2r/4bp1p/p1n1b3/3pP3/Pp1P2p1/1P3p2/1B2NPPP/2RQNRK1|

2828|6976|卢茨科|伊戈尔|2307|尼古拉耶夫|伊戈尔|2272|6r1/1pp2p1k/p2p3p/2bP4/2P2r2/1P4NP/P2R1P1K/5R2|

新代码:(不起作用,http://communitychessclub.com/左栏底部不显示图表)

$filename = "assets/diagrams.txt";
$handle = fopen($filename, "r");
$little_diagrams = fread($handle, 3000);  //<<--- as per your need 

fclose($handle);


$X = 5000; $line = 0;

foreach($little_diagrams as $line) {$X++; if ($X >= 5040) {break;} $token = explode("|", $line); //etc

}
Run Code Online (Sandbox Code Playgroud)

Er.*_*shi 5

<?php
   $filename = "c:\\files\\yourfile.txt";
   $handle = fopen($filename, "rb");
   //$little_diagrams = fread($handle, filesize($filename));
   $little_diagrams = fread($handle, 3000);  //<<--- as per your need 

   fclose($handle);
?>
Run Code Online (Sandbox Code Playgroud)

尝试上面的代码并阅读此fread 功能文档

我希望这也有助于查看示例代码Example #2 Binary fread() 示例

fread 需要两个参数

string fread ( resource $handle , int $length )

第二个是长度部分

length bytes have been read 根据文档

fread() 从 handle 引用的文件指针读取最多 length 个字节。一旦满足以下条件之一,读取就会停止:


更新如下

注意:您可以使用 file_get_contents() 将文件内容作为字符串返回。

将第二个参数从 NULL 更改为 FALSE然后尝试希望它会起作用

所以在我看来正确的代码会像下面这样试试

<?php
                                         //however working with null also
    $file_content =file_get_contents('demoTest.txt',FALSE,NULL,0,3000);

    echo 'File Size: '.filesize('demoTest.txt');
    echo '<br/> CONTENT HERE<br />'.$file_content;

    echo '<br /><br />String Length: '.strlen($file_content);
?>
Run Code Online (Sandbox Code Playgroud)

阅读此处文档以了解file function

在此处输入图片说明