基本上我想解析一些输入内容,这些内容有一些语法,然后转换为html代码。
e.g。
$input="Please watch video 1 [{video('whats-new/chain_reaction-vid1.jpg')} width="580"
height="326" alt="" video="Zb36h4K2IKQ"] and video 2 [{video('whats-new/chain_reaction-
vid2.jpg')} width="580" height="326" alt="" video="Zb36h4K2IDY"] . Enjoy.";
目前有一种方法可以使用
为视频添加所有属性$pattern="/video\('\K[^']*|(?:width|height|alt|video)=\"\K[^\"]*/";
preg_match_all($pattern, $input, $matches);
print_r($matches);
虽然我能够获得$matches
,但似乎很难替换。
[{video('whats-new/chain_reaction-vid1.jpg')} width="580" height="326" alt="" video="Zb36h4K2IKQ"]
使用一些回调函数将此部分转换为适当的html,例如
<a href="youtube.com/Zb36h4K2IKQ"><img src="whats-new/chain_reaction-vid1.jpg" width="580" height="326" alt=""></a>
任何建议。
答案 0 :(得分:0)
<强>正则表达式:强>
\[{video\('([^']*)'\)}([^\]]*)\s+video="([^"]*)"]
替换字符串:
<a href="youtube.com/$3"><img src="$1"$2></a>
<?php
$input='Please watch video 1 [{video(\'whats-new/chain_reaction-vid1.jpg\')} width="580"
height="326" alt="" video="Zb36h4K2IKQ"] and video 2 [{video(\'whats-new/chain_reaction-
vid2.jpg\')} width="580" height="326" alt="" video="Zb36h4K2IDY"] . Enjoy.';
echo preg_replace("~\[{video\('([^']*)'\)}([^\]]*)\s+video=\"([^\"]*)\"]~", '<a href="youtube.com/$3"><img src="$1"$2></a>', $input)
?>
输出:
Please watch video 1 <a href="youtube.com/Zb36h4K2IKQ"><img src="whats-new/chain_reaction-vid1.jpg" width="580"
height="326" alt=""></a> and video 2 <a href="youtube.com/Zb36h4K2IDY"><img src="whats-new/chain_reaction-
vid2.jpg" width="580" height="326" alt=""></a> . Enjoy.