如何从一个txt文件中获取内容到一个数组中

how to get the content from a txt file into an array

出于某种原因,我想将键和值从关联数组中分离出来,并从 txt 文件中读取它们:

以下是我所拥有的

// translations
$lang = array(
    'All Articles' => 'Alle Artikelen',
    'Page' => 'Pagina',
    'from' => 'van'         
);

现在我想这样改:

$lang = array(
    file_get_contents("translations.txt"); // read the associative array
);

translations.txt只包含:

'All Articles' => 'Alle Artikelen',
'Page' => 'Pagina',
'from' => 'van', 

这不起作用。当 key/value 对存储在上面的 txt 文件中时,我如何读出它们?

这可能很危险。它将执行文件中的代码。

eval(
  '$lang = array('.
    file_get_contents("translations.txt"). // read the associative array
  ');'
);
echo '<pre>';
var_dump($lang);

输出:

 array(3) {
  ["All Articles"]=>
  string(14) "Alle Artikelen"
  ["Page"]=>
  string(6) "Pagina"
  ["from"]=>
  string(3) "van"
}

获取文件内容并直接赋值给数组是不可能的。您需要解析文件、提取行然后提取键和值。

$str = file_get_contents("translations.txt");
$lang = [];
foreach (explode("\n", $str) as $line)
{
    if (strpos($line, '=>') === false)
    {
        continue;
    }

    list($key, $value) = explode('=>', $line);
    $lang[trim($key,'\' ')] = trim(trim($value), '\',');
}

使用explode根据换行符(\n)提取行。

if (strpos($line, '=>') === false) 是一个避免空行错误的控件(通常是文件结尾)


最好使用 json 文件:

translations.json

{"All Articles":"Alle Artikelen","Page":"Pagina","from":"van"}

和php代码:

$lang = json_decode(file_get_contents(public_path('lang.json')), true);
var_dump($lang);