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

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

2020-11-17 · TA获得超过2.5万个赞
知道大有可为答主
回答量:1.2万
采纳率:0%
帮助的人:350万
展开全部
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行。
内容仅供参考并受版权保护
TableDI
2024-07-18 广告
作为上海悉息信息科技有限公司的一员,我们专注于提供高效的数据处理解决方案。对于多个文件表格的合并需求,我们通常采用专业的数据整合技术,确保数据的准确性和一致性。通过精确匹配表格字段和格式,我们能够快速、准确地将多个表格合并成一个,为用户提供... 点击进入详情页
本回答由TableDI提供
汲职0GL3f6
推荐于2016-10-31 · TA获得超过987个赞
知道小有建树答主
回答量:367
采纳率:0%
帮助的人:417万
展开全部
这是程序代码
思路是和楼上的基本一致

<?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>';
}

?>

测试过了,没问题
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fallsoft
2011-10-08 · TA获得超过236个赞
知道小有建树答主
回答量:423
采纳率:100%
帮助的人:282万
展开全部
使用函数explode将几千行文本信息按照分行方式分割字符串到数组中,然后使用shuffle函数将数组随机排序,取前10条记录信息。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TimonGe
推荐于2018-03-02
知道答主
回答量:26
采纳率:100%
帮助的人:14.1万
展开全部
$arr = file('1.txt',FILE_SKIP_EMPTY_LINES);
$count = count($arr);
$con = array_slice($arr, rand(0, $count), 10);
$string =  implode('', $con);

$string为你要的结果。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
宇宙大师之一
推荐于2016-04-15 · TA获得超过3476个赞
知道小有建树答主
回答量:2271
采纳率:52%
帮助的人:709万
展开全部
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];

?>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式