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

时间:2018-08-31 04:07:44

标签: php

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

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

$little_diagrams = ('assets/diagrams.txt'); $mason = file($little_diagrams);

我尝试了此操作,但没有用。有什么想法吗?

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

$mason = file($little_diagrams); 

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

2832 | 6979 | Poloskov |||| Nikolayev | Igor | 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 | Lutsko | Igor | 2307 | Nikolayev | Igor | 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

}

1 个答案:

答案 0 :(得分:3)

<?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);
?>

尝试上面的代码并阅读此fread function documentation

我希望这也会对示例代码有所帮助 Example#2 Binary fread()示例

fread带有两个参数

string fread ( resource $handle , int $length )

秒是长度部分

length bytes have been read根据文档

fread()从句柄引用的文件指针中读取最大长度的字节。只要满足以下条件之一,阅读就会停止:


以下更新

注意: 您可以使用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);
?>

file functiondocumentation at here

enter image description here