1

这是我的第一篇文章。我有一个文本 (.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 函数仅适用于数组,如果每个数组元素都是字符串,这将不起作用。

我知道有几种方法可以解决这个问题,但我似乎无法找到一种适用于我的情况。

4

2 回答 2

2

可能是这个?

<?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
)
于 2011-05-26T17:40:10.733 回答
0

对于每个这样的条目,Title (Author) - Citation | Date Added您将:

  • 找到_(下划线是空格的第一次出现,然后您的标题是从 0 到该索引的子字符串
  • 查找()索引,具有这些索引的子字符串是您的作者
  • 找到下划线是空格的索引,并且带有这些索引的子字符串是您的-_引用_|
  • 找到|_下划线是空格的索引,从该索引到最后一个字符的子字符串将是您的日期
于 2011-05-26T17:23:59.257 回答