通过php随机读取txt文件的某一行

求完整的源文件... 求完整的源文件 展开
 我来答
阳光上的桥
推荐于2016-10-07 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21424 获赞数:65786
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部

        PHP随机读取TXT文件的某一行,基本思路是这样的:获得总行数、产生随机数、获得随机行,例子代码如下:

<?php
  $f='1.txt';//文件名
  $a=file($f);//把文件的所有内容获取到数组里面
  $n=count($a);//获得总行数
  $rnd=rand(0,$n);//产生随机行号
  $rnd_line=$a[$rnd];//获得随机行
  echo "$rnd / $n : $rnd_line \n"; //显示结果
?>


        以上程序在我的电脑上执行几次的结果如下:

E:\TEMP\文件\exp>a.php
1 / 8 : [00:05.33]你拿什么来爱我2

E:\TEMP\文件\exp>a.php
3 / 8 : acfp6o7ib----803sb7rmvz----1525175080=

E:\TEMP\文件\exp>a.php
1 / 8 : [00:05.33]你拿什么来爱我2

E:\TEMP\文件\exp>a.php
1 / 8 : [00:05.33]你拿什么来爱我2

E:\TEMP\文件\exp>a.php
5 / 8 : bxi2jw97----0vaf3bw17s----1525184793=
TableDI
2024-07-18 广告
在上海悉息信息科技有限公司,我们深知Excel在数据处理中的重要作用。在Excel中引用不同工作表(sheet)的数据是常见的操作,这有助于整合和分析跨多个工作表的信息。通过在工作表名称前加上感叹号“!”,您可以轻松地引用其他工作表中的数据... 点击进入详情页
本回答由TableDI提供
残草已凋落
推荐于2017-11-26 · TA获得超过213个赞
知道小有建树答主
回答量:174
采纳率:0%
帮助的人:131万
展开全部
$data = file_get_contents($filename); 
//按行分割数据
$arr = explode("\n", $data);
//随机读取100行
$rand = array_rand($arr,1); print_r($rand);
更多追问追答
追问
随机读取100行?我只要一行……
追答
你被上面的注释迷惑了,$rand = array_rand($arr,1);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-10-28
展开全部
        $read = 10;//要读取第10行
        $handle = @fopen("D:\TT\Temp.txt", "r");
        if ($handle) {
            $i = 1;
            while (!feof($handle)) {
                if($i!=$read){
                    $i++;
                    continue;
                }
                $buffer = fgets($handle, 10240);
                $this->tempFileDeal($buffer);
                $i++;
                set_time_limit(0);
            }
            fclose($handle);
        }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wfighter
2013-10-28
知道答主
回答量:36
采纳率:0%
帮助的人:18.7万
展开全部
$data = file_get_contents($filename);

//按行分割数据
$arr = explode("\n", $data);
//返回第n行

return $arr[$n-1];
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
圣鸾OJ
2015-10-07 · TA获得超过1629个赞
知道小有建树答主
回答量:1136
采纳率:96%
帮助的人:107万
展开全部
$read = 10;//要读取第10行
$handle = @fopen("D:\TT\Temp.txt", "r");
if ($handle) {
$i = 1;
while (!feof($handle)) {
if($i!=$read){
$i++;
continue;
}
$buffer = fgets($handle, 10240);
$this->tempFileDeal($buffer);
$i++;
set_time_limit(0);
}
fclose($handle);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式