【发布时间】:2013-10-28 14:07:57
【问题描述】:
我正在寻求有关正则表达式 $pattern 的帮助,以便将 [image:123:title:size] 等内联图像标签转换为 HTML img 标签。
代码如下:
//[image:ID:caption:size]
$content = '[image:38:title:800x900]';
preg_match_all( '/\[image:(\d+)(:?)([^\]]*)\]/i', $content, $images );
if( !empty( $images[0] ) )
{ // There are image inline tags in the content
foreach( $images[0] as $i => $tag )
{
$link_ID = (int)$images[1][$i];
$caption = empty( $images[2][$i] ) ? '#' : $images[3][$i];
$size = empty( $images[4][$i] ) ? '#' : $images[5][$i];
}
echo '<br />';
echo 'ID: '.$link_ID.'<br />';
echo 'Tag: '.$caption.'<br />';
echo 'size: '.$size.'<br />';
}
哪个输出:
图像 ID:12
标题:标题:大小
尺寸:#
但应该输出这个:
图像 ID:12
标题:说明
尺寸:尺寸
这---> /[图像:(\d+)(:?)([^]]*)]/i
没用
任何帮助都会很棒!
【问题讨论】:
-
什么添加了那种图像“标签”??
-
它是其他代码的一部分。我需要 3 个变量来进一步转换。
-
这是一个从帖子中提取内容并查找该模式然后将其转换为图像标签的函数。
-
对于您给出的示例 (
[image:38:title:800x900]),处理后的<img/>会是什么样子?<img src="38.jpg" alt="title" width=800 height=900>?
标签: php html arrays image preg-match-all