これにはおそらく非常に簡単な答えがありますが、私が明確にする必要がないように、できるだけ詳細に説明したいと思います。
私はすべてのコンテンツを収集しようとしています
<content><div>CONTENT</div></content>
コンテンツは後方参照()として返される必要があります$1
。contentとdivの両方に異なるパラメーター(などstyle="color: white;"
)があります。これらのパラメータは重要ではありませんが、それでも存在します。
複雑なのは、divに子divが含まれている可能性があることです。これらは重要ではありませんが、私の現在の正規表現と矛盾します-試合を早期に停止します。
これがコードのサンプルです。このコピー/貼り付けが数回行われ、フォーマットが異なることを想像してください。
<entry>
<title>A general title of a post</title>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
This is a description of the title. It may <b>contain bold text</b> or <div>even divs</div>, and everything else. It is not quite important to save these tags, but they exist nonetheless.
</div>
</content>
</entry>
現在、2つの正規表現コードを使用しています。1つは宣言用で、もう1つは終了タグ用です。これは機能しますが、コンテンツに対してコードを実行する必要があります。そこで、を使用preg_replace_callback()
しますが、真ん中がコールバックになるように2つを接続する方法がわかりません。
宣言:
<content \w+\s*=\s*\".*?\">[\r\n\s]{0,}<div \w+\s*=\s*\".*?\">
閉鎖:
</div>[\r\n\s]{0,}</content>
これらを組み合わせて、内容をコールバックとして返す必要があります。私は絶対にすべてを返すのようなものを試しまし([\w\W]{0,})
たが、この試合は終了divで停止しません。
\bFULLWORD\b
それで、私はコマンドについて知り、それを投げ\bdiv\b
ました...しかし、私はそれを機能させることに成功しませんでした。おそらくそれはPHPでサポートされていませんか?または私は愚かです。
私は知らない。
助けてください!