编程语言
首页 > 编程语言> > 从空格分隔的文本文件创建PHP数组

从空格分隔的文本文件创建PHP数组

作者:互联网

我有一个文本文件,该文件是要转换为数组的目录的列表.我认为可以使用空格定界,但是每个项目之间空格的数量不同,目录名称中的空格将是一个问题.我想将文本解析为PHP数组.

文本文件具有非常严格的结构,如下所示:

04/17/2013  09:49 PM    <DIR>          This is directory 1 (1994)
03/11/2013  06:48 PM    <DIR>          Director 2 (1951)
04/15/2013  08:34 PM    <DIR>          This is going to be number 3 (2000)
08/17/2012  09:50 PM    <DIR>          Four (1998)
10/17/2011  05:12 PM    <DIR>          And lastly 5 (1986)

我只需要保留文件夹的日期(而不是时间),目录的完整名称(作为一项)和括号中的年份.提前致谢!

解决方法:

当然,请使用preg_split

<?php
$str = "04/17/2013  09:49 PM    <DIR>          This is directory 1 (1994)
03/11/2013  06:48 PM    <DIR>          Director 2 (1951)
04/15/2013  08:34 PM    <DIR>          This is going to be number 3 (2000)
08/17/2012  09:50 PM    <DIR>          Four (1998)
10/17/2011  05:12 PM    <DIR>          And lastly 5 (1986)";

function sp($x) {
    return preg_split("/\s\s+|\s*\((\d{4}).*\)/", $x,0,PREG_SPLIT_DELIM_CAPTURE);
}
$array = preg_split("/\n/", $str);
$processed = array_map('sp', $array);

print_r($processed);

这将创建一个数组数组.每行将成为一个数组,其中包含每个项目的数组.例如,$processed [0] [3]将包含这是目录1

请记住,此代码假定作为除法的空格必须为2或更大;同一字段只能考虑1个空格. (您可能需要根据需要手动修改)

编辑:我添加了该部分以将年份作为数组的单独元素.现在$processed [0] [4]具有1994.(您不需要(),对吗?)

看到它与此更改一起工作在这里:http://codepad.org/in973ijV

标签:text-files,arrays,parsing,php,regex
来源: https://codeday.me/bug/20191123/2063880.html