Php 以数组形式读取文本文件

Php 以数组形式读取文本文件,php,arrays,Php,Arrays,我想把一个文本文件转换成一个数组,下面是文本文件的样子 code 1 #Updated 12/15/2000 { Reezena of Confinement } code 2 #Added in v2.0 { Neil } code 3 #Added in V1.0 { Jansen } code 4 #Updated 12/15/2000 { Gellos } 它完成后会是什么样子 array( '1' => "Reezena of Confinement", '2' => "

我想把一个文本文件转换成一个数组,下面是文本文件的样子

code 1 #Updated 12/15/2000
{
Reezena of Confinement
}
code 2 #Added in v2.0
{
Neil
}
code 3 #Added in V1.0
{
Jansen
}
code 4 #Updated 12/15/2000
{
Gellos
}
它完成后会是什么样子

array(
'1' => "Reezena of Confinement",
'2' => "Neil",
'3' => "Jansen",
'4' => "Gellos",
)
我试过:

preg_match_all('/{(.*?)}/s', $html, $matches);

//HTML array in $matches[1]
echo "<pre>";
print_r($matches[1]);
echo "</pre>";
preg_match_all('/{(.*)}/s',$html,$matches);
//$matches中的HTML数组[1]
回声“;
打印($matches[1]);
回声“;
但是它缺少“代码XXX” 不知怎的,我需要抓住它

thx提前

在PHP上使用

试试这个:

$txt = "code 1 #Updated 12/15/2000
{
Reezena of Confinement
}
code 2 #Added in v2.0
{
Neil
}
code 3 #Added in V1.0
{
Jansen
}
code 4 #Updated 12/15/2000
{
Gellos
}";


$lines = explode("\n", $txt);

$array = array();
$key = NULL;

foreach($lines as $line) {
    if(trim($line) === '{' || trim($line) === '}') {
        continue;
    }
    if(substr($line, 0, 4) == 'code') {
        $exploded = explode(' ', $line);
        $key = $exploded[1];
        continue;
    }
    if(isset($key)) {
        $array[$key] = $line;
        $key = NULL;
    }
}
echo "<pre>";
print_r($array);
echo "</pre>";

我的解决方案没有任何
preg
类函数

Array
(
    [1] => Reezena of Confinement
    [2] => Neil
    [3] => Jansen
    [4] => Gellos
)

你希望我们为你写代码吗?如果是这样的话,你是在错误的地方。展示你为此做了什么?不,编辑的问题,只是想知道这是否可能,我不希望得到代码,但THX分配!!!!!!!我认为OP需要
code
前缀来确定结果数组的keysYep;)我需要完美地编码,Thx分配!
    $str = file_get_contents ( 't.txt' );

    preg_match_all ( '@code\s+(\d+)[^{]*{([^}]+)}@', $str, $matches );

    $result = array ();

    foreach ( $matches [1] as $k => $id )
    {
        $result [$id] = trim ( $matches [2] [$k] );
    }

    var_dump ( $result );
$txt = "code 1 #Updated 12/15/2000
{
Reezena of Confinement
}
code 2 #Added in v2.0
{
Neil
}
code 3 #Added in V1.0
{
Jansen
}
code 4 #Updated 12/15/2000
{
Gellos
}";


$lines = explode("\n", $txt);

$array = array();
$key = NULL;

foreach($lines as $line) {
    if(trim($line) === '{' || trim($line) === '}') {
        continue;
    }
    if(substr($line, 0, 4) == 'code') {
        $exploded = explode(' ', $line);
        $key = $exploded[1];
        continue;
    }
    if(isset($key)) {
        $array[$key] = $line;
        $key = NULL;
    }
}
echo "<pre>";
print_r($array);
echo "</pre>";
Array
(
    [1] => Reezena of Confinement
    [2] => Neil
    [3] => Jansen
    [4] => Gellos
)