PHP 读取带有以下标签的文本文件
PHP Read Text File With Following Labels
所以我有这些包含一些详细信息的文本文件,我想 PHP 单独提取和分发每个数据。
文本文件中的示例数据:
Plugin Name: Sample Framework
Description: This is a sample framework
Author: User Friendly
我想要的是从特定标签中获取每个数据,比如如果我想获取 "Plugin Name",那么预期结果将是:
Sample Framework
如果我想获得说明,则为:
This is a sample framework
但是我不知道该怎么做。 preg_replace 或 preg_match 可能会起作用,但是如果文本文件中有隆隆声数据,我认为这不会起作用,但我愿意接受任何答案。
我也有这个现有的功能来确定我想显示什么样的细节。
参见下面的示例:
<?php
function getDetails($var){
if($var=='pname'){
//get the plugin name
}
} ?>
我认为有很多平台可以做到这一点,但我想不通。
这应该适合你:
只需使用 file()
将您的文件读入一个数组,然后提取第一行作为键,另一行作为数据,然后您可以 array_combine()
在一起。
<?php
$lines = file("test.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$lines = array_map(function($v){
return explode(":", $v);
}, $lines);
$data = array_combine(array_map("array_shift", $lines), array_map("array_pop", $lines));
print_r($data);
?>
输出:
Array
(
[Plugin Name] => Sample Framework
[Description] => This is a sample framework
[Author] => User Friendly
)
所以我有这些包含一些详细信息的文本文件,我想 PHP 单独提取和分发每个数据。
文本文件中的示例数据:
Plugin Name: Sample Framework
Description: This is a sample framework
Author: User Friendly
我想要的是从特定标签中获取每个数据,比如如果我想获取 "Plugin Name",那么预期结果将是:
Sample Framework
如果我想获得说明,则为:
This is a sample framework
但是我不知道该怎么做。 preg_replace 或 preg_match 可能会起作用,但是如果文本文件中有隆隆声数据,我认为这不会起作用,但我愿意接受任何答案。
我也有这个现有的功能来确定我想显示什么样的细节。
参见下面的示例:
<?php
function getDetails($var){
if($var=='pname'){
//get the plugin name
}
} ?>
我认为有很多平台可以做到这一点,但我想不通。
这应该适合你:
只需使用 file()
将您的文件读入一个数组,然后提取第一行作为键,另一行作为数据,然后您可以 array_combine()
在一起。
<?php
$lines = file("test.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$lines = array_map(function($v){
return explode(":", $v);
}, $lines);
$data = array_combine(array_map("array_shift", $lines), array_map("array_pop", $lines));
print_r($data);
?>
输出:
Array
(
[Plugin Name] => Sample Framework
[Description] => This is a sample framework
[Author] => User Friendly
)