PHP には、出版社と書籍のリストを含む配列があります。配列はこんな感じ
[p]DARK HORSE COMICS
[c]ADVENTURES INTO THE UNKNOWN ARCHIVES HC VOL 03 $49.99
[c]BALTIMORE INFERNAL TRAIN #1 $3.50
[c]BLOOD BLOCKADE BATTLEFRONT TP VOL 04 $12.99
[p]DC COMCIS
[c]BATMAN #23 VOL 03 $3.99
[p]IMAGE COMICS
[c]SAGA #35 #2.99
パブリッシャーが最初にリストされ、「[p]」タグがパブリッシャーであることを示すパターンです。以下は、[c] で示されるその月に出版社が発行する書籍のリストです。パターンが再び始まります 出版社...本...出版社....本
[p] 区切り文字の間のすべての本を見つけて、出版社に基づいて適切なデータベースに挿入したいと考えています。ダーク ホースの本はすべてダーク ホースのデータベースに入り、DC コミックの本はすべて DC コミックスのデータベースに入ります。
おそらく preg_match を使用して [p] を検索できることはわかっていますが、[p] タグの間にあるすべての [c] タグを見つけて、2 番目の [p] に到達したら検索を停止するように指示する方法がわかりません。 ] 鬼ごっこ。
たぶんこんなことを考えてる
出版社ごとにすべての個々の本を見つけて、配列を作成します
look for first publisher using the [p] tag
...
find all books by first publisher using [c] tag
...
build array for first publisher
...
$darkHorse[] = "all dark horse books"
...
run into next [p] tag and stop matching books
...
look for next publisher using the next [p] tag
...
find all books for next publisher using [c] tag
...
build array for next publisher
...
$dcComics = "all dc comic books"
...
repeat...
[p] および [c] タグは任意です。出版社と本の違いを示すためにそれらを挿入しただけです。
これらの個々の配列を取得して、SQL データベースに挿入できることを確信しています。
ヒントをありがとう