ですが困ったことに、二重角括弧( {{ }} ) の部分が HTML として残ってしまいます。
少し省略して書きますが、例えば以下のような部分です。
{{Infobox Language|name=日本語
|nativename={{lang|it|日本語}}
|pronunciation=/{{IPA|nʲiɦoŋŋo}} ({{IPA|nʲippoŋŋo}})/
|familycolor=#dddddd
|states=[[日本]]など(「[[#分布|分布]]」の節参照)
|region=[[東アジア]]など
}}
この角括弧及びその中に書かれた文字列を全て削除したく、
改行コードを削除後、PHP で
preg_replace( '/{{.+?}}/', '', $result );
と書きましたが角括弧が入れ子になっているためかうまくいきません。
そこで以下のいずれか、または分かる限りの方法を教えてください。
★入れ子になっている角括弧及び角括弧の中の文字列の削除方法。
方法は PHP または、Pear::Text_Wiki_Mediawiki のメソッドを使用した方法で。
★削除せずにPear::Text_Wiki_Mediawikiを使って、きちんと人間が閲覧できる
形式の HTML に変換する方法。(ルールを追加すればよい??)
正規表現の再帰を使えば
$result = preg_replace('/{{([^{}]|{[^{]|}[^}]|(?R))*?}}/', '', $result);
のような形でできると思います。再帰が使えない場合は
$old = ''; while (!($old === $result)) { $old = $result; $result = preg_replace('/{{([^{}]|{[^{]|}[^}])*?}}/', '', $old); }
のようなコードを書くといけると思います。
返信が遅くなり申し訳ありません。
ありがとうございます。無事、タグを除去することができました。