如何用PHP将文本文件转换为数组?

时间:2017-02-07 20:26:14

标签: php arrays

我有一个这样的文本文件:

filter 'no'
interval '15'
phonenumbers ''
color 'purple'
version '24/10/2016'

我想转入一个数组,所以当我$array['filter']时,输出应该是no,当我$array['color']时,输出应该是purple这里是什么到目前为止我已经尝试过了:

<?php
$txt_file    = file_get_contents('/home/ab/mytext.txt');
$rows        = explode("'", $txt_file);
var_dump($rows);
?>

但它不起作用,我怎么能这样做?

3 个答案:

答案 0 :(得分:0)

您应该将其设置为CSV格式,并将第一个标记作为密钥,将第二个标记作为值。

filter, no
interval, 15

然后只是按新行爆炸并解析

$file = file_get_contents(...);
$lines = explode($file, "\n");
foreach($lines as $line) {
    $l = str_getcsv($line);
    // assign stuff to array
}

答案 1 :(得分:0)

试试这个:

$txt_file    = file_get_contents('/home/ab/mytext.txt');
// explode to lines
$rows        = explode( PHP_EOL, $txt_file);
$result = array();
foreach( $rows as $row ){
    // explode each line by space
    $parts = explode( ' ', $row );
    // set values of arrray
    $result[ $parts[0] ] = trim( $parts[1], '\'' );
}

echo $result['color'];

答案 2 :(得分:0)

PHP的内置file函数可以将文件内容放入数组中。数组中的每个值都是文件中的对应行。根据空格分隔符将每一行分解为一个数组。这是您可能正在寻找的代码:

<?php

    $txt_file = file('/home/ab/mytext.txt', FILE_IGNORE_NEW_LINES);
    foreach($txt_file as $value) {
        $value_exploded = explode(' ', $value);
        $arr[$value_exploded[0]] = $value_exploded[1];
    }

    var_dump($arr);
    echo $arr['filter'];

?>

希望它有所帮助!