出于某种原因,我想从关联数组中分离键和值,并从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"
}