如何将txt文件中的内容获取到数组中



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

下面是我做的

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

现在我想把它改成这样:

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

CCD_ 1只包含:

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

这不起作用。当键/值对存储在如上所述的txt文件中时,我如何读取它们?

这不可能获取文件内容并直接分配给数组。您需要解析文件,提取行,然后提取关键字和值。

$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);

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

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"
}

最新更新