在将文本文件解析为PHP时需要一些帮助。该文件由PHP脚本生成,因此我无法控制内容格式。文本文件如下所示:
7/4 / 2013-7 / 4/2013
最简单的胫骨腿 - 开始夏天 Playhouse与一群人一起合作,与The的人们合作 节日。
kilt.jpg
1,1,0,
-
7/8 / 2013-7 / 23/2013
热门腿是的,大家好,这都是平台 鞋子,休闲服和疯狂的发型。
hotstuff.jpg
1,1,0,
-
到目前为止我的代码是:
$content = file_get_contents('DC_PictureCalendar/admin/database/cal2data.txt');
list($date, $showname, $summary, $image, $notneeded, $notneeded2) = explode("\n", $content);
echo 'Show Name' . $showname . '<br/>';
这只能让我获得第一个节目标题,我需要抓住所有节目。我确定For循环会这样做,但不知道如何根据文件的内容来做。我需要的只是第二行(显示标题)和第四行(图像)。有帮助吗?提前谢谢。
答案 0 :(得分:2)
如果您正在将整个文件读入数组,那么只需使用file()
将每行读入数组。
$content = file('DC_PictureCalendar/admin/database/cal2data.txt', FILE_IGNORE_NEW_LINES);
然后您可以过滤掉您不想要的所有行
$content = array_diff($content, array('1,1,0', '-'));
然后你可以分成4行的块(即每个条目一个项目)
$content_chunked = array_chunk($content, 4);
这会给你一个类似
的数组Array(
0 => Array(
0 => '7/4/2013-7/4/2013',
1 => 'Best Legs in a Kilt',
2 => 'To start the summer off with a bang, the Playhouse has teamed up with the folks at The Festival.',
3 => 'kilt.jpg'
),
1 => Array(
0 => '7/8/2013-7/23/2013',
1 => 'Hot Legs',
2 => 'Yes, folks, it's all platform shoes, leisure suits, and crazy hair-do's.',
3 => 'hotstuff.jpg'
) ... etc.
)
然后我会将这个数组映射到一个有用的对象数组中,这些对象具有对你有意义的属性名称:
$items = array_map(function($array)) {
$item = new StdClass;
$item->date = $array[0];
$item->showname = $array[1];
$item->summary = $array[2];
$item->image = $array[3];
return $item;
}, $content_chunked);
这将为您留下一系列对象,如:
Array(
0 => stdClass(
'date' => '7/4/2013-7/4/2013',
'showname' => 'Best Legs in a Kilt',
'summary' => 'To start the summer off with a bang, the Playhouse has teamed up with the folks at The Festival.',
'image' => 'kilt.jpg'
),
1 => stdClass(
'date' => '7/8/2013-7/23/2013',
'showname' => 'Hot Legs',
'summary' => 'Yes, folks, it's all platform shoes, leisure suits, and crazy hair-do's.',
'image' => 'hotstuff.jpg'
) ... etc.
)