1

PHPでフォーマットしようとしているプレーンテキストのジャーナルがあります。各エントリを日付とテキストを含む配列に分割したいと思います。

preg_split を使用してこれを行うことができますが、日付が完全に削除されます!

txt ファイルは次のようになります。

2012-01-28

text text text

2012-01-14

some other text

2011-12-07

a previous entry

4

2 に答える 2

2

フラグは、PREG_SPLIT_DELIM_CAPTUREパターン文字列で日付が括弧で囲まれている限り、分割時に日付が削除されないようにします。例えば:

$array = preg_split('/(\d{4}-\d{2}-\d{2})/', $text, null, PREG_SPLIT_DELIM_CAPTURE);

これで、日付は配列の奇数インデックスになり、コンテンツは偶数インデックスになります。

于 2012-01-29T18:13:37.430 に答える
2

ぜひ、次のことができますpreg_match_all

$matches = array();
preg_match_all('~(?P<date>\d{4}-\d{2}-\d{2})\s*(?P<text>.*)~ms', $subject, $matches);

コンテンツに合わせて少し調整する必要があるかもしれません。

のような構造になります

matches => {
    date(3) => {"2012-01-28", ... }
    ...
    text(3) => {"text text text", ...}

これは簡単に利用したり、カスタム構造に変換したりできます。

于 2012-01-29T17:17:00.250 に答える