テキスト ファイル (「file.txt」) があります。
5 (blah-blah) 001
2 (blah) 006
行 [番号] でパターンを検索して、最初の単語、括弧内の式、および最後の 3 桁または 4 桁の数字を見つける PHP コードを使用します。
<?php
// file
$file = file("file.txt");
/* first line */
// match first word (number)
preg_match("/^(\d+)/",$file[0],$first_word);
// match expression within parentheses
preg_match("/(?<=\().*(?=\))/s",$file[0],$within_par);
// match last 3- & 4-digit numbers
preg_match("/(\d{3,4})?(?!.*(\d{3,4}))/",$file[0],$last_word);
/* repeats (second line) */
preg_match("/^(\d+)/",$file[1],$first_word2);
preg_match("/(?<=\().*(?=\))/s",$file[1],$within_par2);
preg_match("/(\d{3,4})?(?!.*(\d{3,4}))/",$file[1],$last_word2);
<?php
そして、一致を 1 行ずつ表示する HTML コードは次のとおりです。
<div>
<p><?php echo $first_word[0] ?></p>
<p><?php echo $within_par[0] ?></p>
<p><?php echo $last_word[0] ?></p>
</div>
<div>
<p><?php echo $first_word2[0] ?></p>
<p><?php echo $within_par2[0] ?></p>
<p><?php echo $last_word2[0] ?></p>
</div>
しかし、PHP コードと HTML コードの両方で、それぞれを個別にリストすることなく、すべての一致を表示できるようにしたいと考えています。preg_match_all を使用してテキスト ファイルを検索し、すべての一致を foreach して、一度に 1 つの div (3 つのパターン) でそれぞれをエコー/返したいと思います。(私はいくつかの異なる方法を試しましたが、結果として配列を取得しました。) これを達成できるコードは何ですか?