问题描述
|
这是我的第一篇文章。我有一个文本(.txt)文件,其中包含来自多个来源的日记帐分录。我正在按日期,作者,标题等来组织条目。
每个条目都用\“ --- \”分隔。
每个日期都在\“ | \”之后给出。
每个作者都放在括号中。
标题位于条目顶部括号之前。
因此,典型的条目如下所示:
Title (Author) - Citation | Date Added
Entry
---
到目前为止,这是我的代码:
$text = file_get_contents(\'./uploads/My Clippings.txt\');
$entries = explode(\"==========\",$text);
$count = count($entries);
echo \"<h3>You have $count entries on your Kindle!</h3><br />\";
foreach ($entries as $entry) {
echo $entry . \"<br /><br />\";
}
现在,我有了一个由\“ --- \”分隔符分隔的条目数组。
接下来,我想按作者,标题等拆分数组中的每个字符串。
问题在于preg函数仅适用于数组,并且如果每个数组元素都是字符串,则此函数将不起作用。
我知道有几种方法可以解决此问题,但我似乎找不到适合我的情况的方法。
解决方法
可能是这个吗?
<?php
$string = \'Dune 2000 (Frank Herbert) - Some Citation | 2011-05-25\';
$pattern = \'/(.*) \\((.*)\\) \\- (.*) \\| (.*)/\';
preg_match($pattern,$string,$matches);
print_r($matches);
?>
输出:
Array
(
[0] => Dune 2000 (Frank Herbert) - Some Citation | 2011-05-25
[1] => Dune 2000
[2] => Frank Herbert
[3] => Some Citation
[4] => 2011-05-25
)
,对于每个类似“ѭ4”的条目,您将:
找到_(
的第一个出现,其中下划线是一个空格,然后您的标题是从0到该索引的子字符串
找到(
和)
索引,并且那些索引的子字符串是您的作者
找到-_
和_|
的索引,其中下划线是空格,带有这些索引的子字符串是您的引文
找到索引“ѭ10”,其中下划线是一个空格,从该索引到最后一个字符的子字符串将是您的日期