この質問は、構造化テキストファイルを PHP 多次元配列に変換する方法とほぼ同じですが、与えられた正規表現ベースのソリューションを理解できなかったため、再度投稿しました。実際にそれから学ぶことができるように、PHP だけを使用してこれを解決しようとする方が良いようです (この時点で正規表現を理解するのは難しすぎます)。
次のテキスト ファイルがあるとします。
HD Alcoa Earnings Soar; Outlook Stays Upbeat
BY By James R. Hagerty and Matthew Day
PD 12 July 2011
LP
Alcoa Inc.'s profit more than doubled in the second quarter.
The giant aluminum producer managed to meet analysts' forecasts.
However, profits wereless than expected
TD
Licence this article via our website:
http://example.com
このテキストファイルを PHP で読み取ります。次のように、ファイルの内容を配列に入れるための堅牢な方法が必要です。
array(
[HD] => Alcoa Earnings Soar; Outlook Stays Upbeat,
[BY] => By James R. Hagerty and Matthew Day,
[PD] => 12 July 2011,
[LP] => Alcoa Inc.'s profit...than expected,
[TD] => Licence this article via our website: http://example.com
)
単語HD BY PD LP TD
は、ファイル内の新しいセクションを識別するためのキーです。配列では、すべての改行が値から取り除かれます。理想的には、正規表現なしでこれを行うことができます。すべてのキーで爆発することはそれを行う1つの方法だと思いますが、それは非常に汚いでしょう:
$fields = array('HD', 'BY', 'PD', 'LP', 'TD');
$parts = explode($text, "\nHD ");
$HD = $parts[0];
おそらく一度でもテキストをループして、上記のように配列に分割する方法について、より明確なアイデアを持っている人はいますか?