0

我需要在 PHP 中解析文本文件。请看下面,我已将其作为图像上传。我需要把田野市场弄成黄色。

尝试了很多方法,但没有任何信心。有人可以帮我吗?

谢谢

在此处输入图像描述

4

2 回答 2

2

您可以使用正则表达式和一些标记来处理文件。看来您的字段分隔符值为“/”,记录分隔符为“\r\n\r\n”。

$string = "data"; //lets assume your data is contained in one string
$records = preg_split("/^[\r\n\s]+$/", $string); 
//this line assume your file contains dos formatting, change to "/\r\r/" for osx and "/\n\n/" for unix

$data = array();
foreach ($records as $record) { 
     $fields = explode("/", $records);
     $data[] = array($fields[2], $fields[3], $fields[7], $fields[16);
}

var_dump($data);

请注意,记录分隔符很重要,您需要根据文件编码对其进行调整。

更新。我已将记录分隔符改进为空行,而不是两个连续的新行。

于 2013-07-20T09:32:48.507 回答
0

尝试以下操作:

$pattern[] = '#[\d]{02}-[\d]{2}-[\d]{2}/[\d]{2}\s[A-Z]{1}\s[\d]{2}#';
$pattern[] = '#EVENT=[A-Z]{3,}#';
$pattern[] = '#AFLR=[\d]{3}-[\d]{3}#';
$res = array();
foreach ($pattern as $key => $value){
    if (preg_match_all($value, $text, $matches)){
        $res[] = $matches[0];
    } else {
        $res[] = NULL;
    }
}

它看起来像EVENT并且AFLR是保持不变的变量名,所以我对这些字母进行了硬编码。如果不是这样,请告诉我。

于 2013-07-20T09:47:25.453 回答