2012-02-08 4 views
0

私は1つの問題が発生しました。 、preg_replaceそれを行う方法?

[caption id="attachment222" align="aligncenter" width="520" caption="caption ghoes here"]<img class="image-caption" title="title" src="picture link goes here" alt="" width="520" height="328" />[/caption] 

だから、基本的に私は何をする必要があるか、$コンテンツを通過内部で各<img> SRCを取得している[キャプション] [/キャプション]タグ、詳細は、上記のコードを参照してください - 私が得たコードキャプションの中にsrcリンクを挿入してimgタグを削除してください。最後には[caption id="attachment222" align="aligncenter" width="520" caption="caption ghoes here" url="picture link goes here"][/caption]のようになります。

ご覧のとおり、srcもurlに変更されています。あなたが私を助けてくれることを願っています。

+2

ベターDOM正規表現ではない使用します。 – anubhava

+0

誰かのような音が正規表現を学ぶ必要があります! +1 @anubhava for DOM – Zenexer

+0

@anubhavaこれはRegExで完璧に動作します。 DOMはあまりにも厄介です。括弧内の要素がDOMノードとして終わる可能性はほとんどないので、うまくいくとは思えません。 – bummzack

答えて

0

これは動作するはずです:

$parsed = preg_replace(
    '{\[caption([^\]]+)\]<img.*?src=["\'](.*?)["\'].*?/>}mi', 
    '[caption$1 url="$2"]', 
    $sourceText 
); 
+0

ありがとう、それは魅力のように働いた、私は正規表現を学ぶことを開始する時間だと思う – user1184908

0

正規表現は#<img.*?/>#iのようなものです。私は残りの部分を把握させておきます。

1

これは正確ではありませんが、正しい方向を指します。このようなregexpressionを使用

は2つの物事が、あなたはこれににpreg_replaceでそれを使用するあなたのキャプションデータを取得し、あなたのイメージSRC

[caption (.*)]<img class="image-caption" title="title" src="(.*)" alt="" width="520" height="328" />[/caption] 

行います。

[caption $1 src="$2"][/caption] 

$ 1のコンテンツ(。)キャプションので、$ 2は、画像SRCです。 [img]タグ内のタイトルとその他の属性が動的である場合は、単にreg expressで置き換えてください。ように。

[caption (.*)]<img class=".*" title=".*" src="(.*)" alt=".*" width=".*" height=".*" />[/caption] 

これでうまくいくはずです。 (私は正規表現を吸うので、よりエレガントな方法があるかもしれません)。

関連する問題