要在php中从第(1)行到第(n)行读取文件吗

要在php中从第(1)行到第(n)行读取文件吗,php,file,fread,Php,File,Fread,我有一个PHP脚本,可以从第n行到第(n)行读取文件。我的意思是,我将从下拉列表中选择这些行,脚本将读取该文件。我尝试了其他一些方法,但没有解决我的问题 PHP HTML 选择文件 从…起 1. 2. 3. 4. 5. 6. 7. 到 1. 2. 3. 4. 5. 6. 7. 我想要什么 我将从下拉列表中选择值,脚本将在该范围内读取。例如,从第4行到第8行 如果我错了,请更正我的脚本…谢谢。使用带有文件功能的简单逻辑。请查看以下解决方案: if(isset($_POST['submit'

我有一个PHP脚本,可以从第n行到第(n)行读取文件。我的意思是,我将从下拉列表中选择这些行,脚本将读取该文件。我尝试了其他一些方法,但没有解决我的问题

PHP


HTML


选择文件
从…起
1.
2.
3.
4.
5.
6.
7.
到
1.
2.
3.
4.
5.
6.
7.
我想要什么

我将从下拉列表中选择值,脚本将在该范围内读取。例如,从第4行到第8行


如果我错了,请更正我的脚本…谢谢。

使用带有
文件
功能的简单逻辑。请查看以下解决方案:

if(isset($_POST['submit'])){

    $selected_file = $_POST['files'];
    $from_line = $_POST['from_line'];
    $to_line = $_POST['to_line'];



    $file_array = file($selected_file);

    for($i = 0; $i < count($file_array); $i++){
        if($i >= ($from_line -1) && $i < ($to_line)){
            echo $file_array[$i];
            echo '<br />';
        }
    }
}
if(isset($\u POST['submit'])){
$selected_file=$_POST['files'];
$from_line=$_POST['from_line'];
$to_line=$_POST['to_line'];
$file\u array=file($selected\u file);
对于($i=0;$i=($from_行-1)和&$i<($to_行)){
echo$file_数组[$i];
回声“
”; } } }

它将回显文件中所需的行。

使用带有
文件功能的简单逻辑。请查看以下解决方案:

if(isset($_POST['submit'])){

    $selected_file = $_POST['files'];
    $from_line = $_POST['from_line'];
    $to_line = $_POST['to_line'];



    $file_array = file($selected_file);

    for($i = 0; $i < count($file_array); $i++){
        if($i >= ($from_line -1) && $i < ($to_line)){
            echo $file_array[$i];
            echo '<br />';
        }
    }
}
if(isset($\u POST['submit'])){
$selected_file=$_POST['files'];
$from_line=$_POST['from_line'];
$to_line=$_POST['to_line'];
$file\u array=file($selected\u file);
对于($i=0;$i=($from_行-1)和&$i<($to_行)){
echo$file_数组[$i];
回声“
”; } } }
它将回显文件中所需的行。

file()
函数将以字符串数组的形式返回文件内容(如果没有发生错误)。
该数组中的第一行位于默认起始位置(
0
)。
因此,在获取预期范围时应考虑此条件。
对于此类输入边界:从
4
-到
8
-应该是:从
3
-到
7

要从数组中获取元素(字符串)的范围,请使用
array\u slice
函数:

...

$file_array = file($selected_file);
$len = $to_line - $from_line;
$strings_slice = array_slice($file_array, $from_line - 1, $len);
file()
函数将以字符串数组的形式返回文件内容(如果没有发生错误)。
该数组中的第一行位于默认起始位置(
0
)。
因此,在获取预期范围时应考虑此条件。
对于此类输入边界:从
4
-到
8
-应该是:从
3
-到
7

要从数组中获取元素(字符串)的范围,请使用
array\u slice
函数:

...

$file_array = file($selected_file);
$len = $to_line - $from_line;
$strings_slice = array_slice($file_array, $from_line - 1, $len);

试试这段代码。这肯定会对你有帮助

<?php 
if(isset($_POST['submit'])){

    $selected_file = $_POST['files'];
    $from_line = $_POST['from_line'];
    $to_line = $_POST['to_line'];

    $file_open = fopen($selected_file,"rb") or die('Fail to open a file')
    $i=1;
    while ($line = fgets($file_open, 1000)) {
        if($i>=$from_line && $i<=$to_line){
            echo $line.'<br/>';
        }
        $i++; 
        }
    }
?>

试试这段代码。这肯定会对你有帮助

<?php 
if(isset($_POST['submit'])){

    $selected_file = $_POST['files'];
    $from_line = $_POST['from_line'];
    $to_line = $_POST['to_line'];

    $file_open = fopen($selected_file,"rb") or die('Fail to open a file')
    $i=1;
    while ($line = fgets($file_open, 1000)) {
        if($i>=$from_line && $i<=$to_line){
            echo $line.'<br/>';
        }
        $i++; 
        }
    }
?>


数组将从0索引开始,这就是我们需要与
$from\u line-1进行比较的原因
数组将从0索引开始,这就是我们需要与
$from\u line-1进行比较的原因