PHP如何从文本中提取指定行数内容

比如有一个1.txt有几千行文本,我想写一个PHP函数,随机提取10行的内容,放入一个变量中,请问这个代码如何写啊?

PHP如何从文本中提取指定行数内容?在php中,通过fopen()方法打开文件,在while中使用fgets()方法获取每行数据,每读到一行,就使用标识记录一次,通过累计记录数计算出文件的行数。下面介绍实现的过程。
方法/步骤分步阅读
1
/7
新建一个php文件,命名为handle.php,用于讲解PHP怎么获取文件的行数。
2
/7
新建一个文本文件,命名为test.txt,在里面输入四行数据,分别是aaa,bbb,ccc,ddd。
3
/7
在handle.php文件里,使用fopen方法以只读方式打开test.txt文件,代码如下:
4
/7
在handle.php文件里,创建一个初始变量i,用于保存文件内容的行数。
5
/7
通过while()语句,使用fgets方法从文件指针中读取一行,每读取一行,变量i自加一,直到到达文件末尾停止while的执行。
注:!feof($handle),函数检测是否已到达文件末尾。
6
/7
最后,使用echo输出文件的行数,并通过fclose关闭文件资源。代码如下:
7
/7
在浏览器执行handle.php文件,查看输出的行数,执行的结果为4行。
内容仅供参考并受版权保护
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-10-31
这是程序代码
思路是和楼上的基本一致

<?php
$open=file_get_contents("abcd.txt");
//把abcd.txt整个文件当做字符串存在$open变量里
$arr=explode("\r\n",$open);
/*按照windows换行作为分割条件,分割$open变量
换行:linux的\r,unix的时\n,windows是\r\n,html里是<br>
*/
shuffle($arr);
//打乱数组
for($i=0;$i<10;$i++)
//循环,这回是输出$arr2的10条
{
echo $arr[$i].'<br>';
}

?>

测试过了,没问题本回答被提问者采纳
第2个回答  2011-10-08
使用函数explode将几千行文本信息按照分行方式分割字符串到数组中,然后使用shuffle函数将数组随机排序,取前10条记录信息。
第3个回答  推荐于2018-03-02
$arr = file('1.txt',FILE_SKIP_EMPTY_LINES);
$count = count($arr);
$con = array_slice($arr, rand(0, $count), 10);
$string =  implode('', $con);

$string为你要的结果。

本回答被网友采纳
第4个回答  推荐于2016-04-15
PHP中的 file_get_contents()、explode() 函数可以实现。

file_get_contents() 函数把整个文件读入一个字符串中。

explode() 函数以指定的分割符把字符串打散为数组。

例如:

<?php

//把read.txt文本中的内容读取到一个字符串中

$str = file_get_contents('read.txt');

//用换行的分割符(\r\n)把字符串分割为数组,也就是把每一行分割为成数组的一个值

$array = explode("\r\n",$str);

//输出文本中第4行内容(因为数组的键值是从0开始的,所以第4行也就是键值3)

echo $array[3];

?>
相似回答