2007-8-13 14:07
php店小二
php读取文件特定行内容
今天想读很大一个文件的最后一行
所以想了一下写了一个读取文件特定行的脚本
环境linux+php
[quote]script_file_name :php get_file_line_num_info.php[/quote]
[code]<?php
/**
* @file
* @version 1.0
* @author 网海浪子
* @date 2006-3-30
* @email [email]sxf02615@163.com[/email]
* @brief 验证码文件类
*
*/
?>
<?php
/**
*
* @brief 调用系统标准输入输出
*
*/
function read_input()
{
$fp = fopen("/dev/stdin", "r");
$input = trim(fgets($fp, 255));
fclose($fp);
return $input;
}
print_r("请输入文件名称\n");
$file_name = read_input();
print_r("请输入要显示的行数\n");
$file_line_num = read_input();
print_r("输入内容:文件名称->".$file_name.' 行数->'.$file_line_num."\n");
$while_num = 0;
while(true)
{
print_r("确定执行?y/n \n");
$sure = read_input();
if($sure=='y'||$sure=='n'||$sure=='Y'||$sure=='N')
{
if($sure=='y'||$sure=='Y')
{
$fp_file = @fopen($file_name,'r');
if(!$fp_file)
{
print_r("文件不存在 或者 没有读权限\n");
}
else
{
$line_num = 1;
while(!feof($fp_file))
{
if($line_num==$file_line_num)
{
print_r(fgets($fp_file,4096));
break;
}
$line_num++;
}
}
break;
fclose($fp_file);
}
else
{
print_r("你选择了不执行\n");
}
break;
}
$while_num++;
if($while_num==1000)
{
print_r('对不起,已经超过最大次数\n');
return false;
}
}
?>
[/code]
使用方法:
[code]path_to_php/php php get_file_line_num_info.php[/code]
[[i] 本帖最后由 php店小二 于 2007-8-13 14:09 编辑 [/i]]