如何从一个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);
出于某种原因,我想将键和值从关联数组中分离出来,并从 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);