web-dev-qa-db-ja.com

ショートコードコンテンツフィルタ

探しているのですが、正確にはわかりません。

私はショートコードを持っています、それを[ショートコード]と呼びましょう。

ユーザーは、主に画像だけでなく、リンク、リンク内の画像などの内部にHTMLタグを入力します。

[shortcode]
<img src="http://www.site.com/myimage.jpg" />
<a href="http://www.blabla.com"><img src="http://www.site.com/myimage2.jpg" /></a>
(...)
[/shortcode]

要点は、URLのフォーマットを変更したい、ということです。すべてのimg srcをfiles/myimagescriptで始めたいのですか。

したがって、上記のコードは次のように出力されます。

<!--- shortcode code before input -->
<img src="files/myimagescript?http://www.site.com/myimage.jpg" />
    <a href="http://www.blabla.com"><img src="files/myimagescript?http://www.site.com/myimage2.jpg" /></a>
    (...)
<!-- shortcode code after input -->

だから基本的に私は単に画像のソースを変更する必要があります。そしてそれは1から無制限まで、任意の数の画像に対して機能するはずです。

Foreach PHP loopについて考えていますが、ショートコードから各img src行を取得して表示する前にそれを処理する方法がわかりませんか。

1
Wordpressor

あなたはあなたのsrcを見つけるのにあなたの "files/myimagescript"を追加するのにregexを使うことができますか?それに:

function append_myimagescript($attr, $content){ 
    $pattern = '/src="([^"]*)"/i';
    $replacement = 'files/myimagescript?${1}';
    return preg_replace($pattern, $replacement, $content);
}
2
Bainternet