如何从文件中取一行到变量? (PHP)

时间:2014-08-04 17:13:17

标签: php

好的,我有一个文件,每隔一段时间由另一个php文件更新。这就是它的含义:

  

137586

     

HDdeltin

     

14/07/1

我想为每一行创建一个变量,例如$ admincode为第一行,$ name为第二行,$ date为第三行。当我尝试使用" 137586"作为$ admincode变量,它将整个文件作为其变量。如何使每个变量都将指定的行作为其值?

2 个答案:

答案 0 :(得分:1)

您可以使用file($filename)获取文件中所有行的数组 然后你可以使用静态行号来获得单行,也可以使用正则表达式。

让线条静止的示例:

$array = file($myFile);
$admincode = $array[0];
$name = $array[1];
$date = $array[2];

答案 1 :(得分:1)

你有很多选择,你已经通过Paedow礼貌得到了其中一个。如果要从这些变量中排除新行字符并在文件中跳过空行,可以使用以下代码:

$file_lines = file($file_path, FILE_IGNORE_NEW_LINES 
                              | FILE_SKIP_EMPTY_LINES);
$admincode = $file_lines[0];
$name = $file_lines[1];
$name = $file_lines[2];

在没有跳过空行的选项的情况下手动执行此操作的方法将在下一行代码中如下所示。

function get_lines_from_file($file_path, $skip_empty_lines=TRUE, 
                             $ignore_new_line_characters=TRUE) {

    $file_string = file_get_contents($file_path);
    $file_lines = explode("\r\n", $file_string);
    $new_line = "\r\n";

    if( count($file_lines)==1 ) {

        $file_lines = explode("\n", $file_string);
        $new_line = "\n";

    }

    $result = array();

    foreach($file_lines as $file_line) {

        if($skip_empty_lines && $file_line!="") {

            $file_line = ($ignore_new_line_characters)
                   ? $file_line : $file_line.$new_line;
            array_push($result, $file_line);

        }
        else if($skip_empty_lines===FALSE) {

            $file_line = ($ignore_new_line_characters) 
                   ? $file_line : $file_line.$new_line;
            array_push($result, $file_line);

        }

    }

    return $result;

}