1

入力された文字列から日付を抽出したいと思います。ただし、日付形式に固有のものではありません(そうでない場合は、ある種の正規表現を使用します)

例えば

「3週間前にアフリカで撮った写真」

PHPパーサーは「3週間前」を抽出し、これを喜んで変換できます。

これを実行するための最良の方法、または私のためにそれを実行できるライブラリを知っている人はいますか? 入力内の文字列のすべての可能な組み合わせをループするのは良い考えではないと判断しました。

みんなありがとう


ペッカはいい指摘をした。

複数の文字列が strtotime() 関数で使用されていることが検出された場合は、自分で seom マジックを実行します。ある種のcontextアルゴリズムを設計するかもしれません。しかし、あなたたちもそのことについて心配する必要はないと思います。この日付ビットを抽出する方法についての理解を再び深めることができて、とてもうれしく思います。

その他の例

先週のアルバートホールコンサートで。

5年前にエミリーとパリで撮影。

12月に新しい場所で撮ったこれらすべての写真

  • 本当にそんなもの。
4

1 に答える 1

2

を使用していると思いますstrtotime。その場合、文字列を解析して、「前」、「3」、「週」、「日」など、有効な時間を作成できるトークンの最長のリストを決定しないでください。次に、のリストを解析してみてください。と取りstrtotimeます。これが機能しない場合は、次に長い有効なトークンのリストを試してください。明らかに、有効なすべてのトークンのリストが必要になりますstrtotimeが、これはそれほど難しいことではありません。

したがって、「3 週間前にアフリカで撮影された写真」では、コードは有効なトークン「3」、「週」、および「前」を見つけ、それらを strtotime で解析しようとします。

完璧ではありませんが、多くの場合うまくいくと思います。

于 2010-08-21T11:46:12.107 に答える