一部のコンテンツを解析して自家製のリンクタグを取得し、それを通常のリンクタグに変換するこの関数があります。
可能な入力:
<p>blabalblahhh <moolinkx pageid="121">text to click</moolinkx> blablabah</p>
出力:
<p>blabalblahhh <a href="whateverpage.htm">text to click</a> blablabah</p>
これが私のコードです:
$regex = '/\<moolinkx pageid="(.{1,})"\>(.{1,})\<\/moolinkx\>/';
preg_match_all( $regex, $string, $matches );
文字列に 1 つしかない場合は、完全に機能します。しかし、2 つ目があるとすぐに、それは機能しません。
入力:
<p>blabalblahhh <moolinkx pageid="121">text to click</moolinkx> blablabah.</p>
<p>Another <moolinkx pageid="128">text to clickclick</moolinkx> again blablablah.</p>
それが私が print_r($matches) したときに得たものです:
Array
(
[0] => Array
(
[0] => <moolinkx pageid="121">text to click</moolinkx> blablabah.</p><p>Another <moolinkx pageid="128">text to clickclick</moolinkx>
)
[1] => Array
(
[0] => 121">text to click</moolinkx> blablabah.</p><p>Another <moolinkx pageid="128
)
[2] => Array
(
[0] => text to clickclick
)
)
私は正規表現に慣れていないので、それは非常に些細なことに違いありません...しかし、それが何であるかを特定することはできません:(
事前にどうもありがとうございました!
注意: これは私の最初の投稿ですが、私はこの素晴らしい Q&A を何年も使用してきました!