【发布时间】:2013-02-07 21:22:54
【问题描述】:
我想用正则表达式将[img]src[/img] 更改为<img src="src" alt="src" >。
我发现了一些将<img src=""> 转换为[img][/img] 的示例,但不是我的情况。
谢谢!
【问题讨论】:
标签: php regex preg-replace
我想用正则表达式将[img]src[/img] 更改为<img src="src" alt="src" >。
我发现了一些将<img src=""> 转换为[img][/img] 的示例,但不是我的情况。
谢谢!
【问题讨论】:
标签: php regex preg-replace
我相信这篇文章会帮助您解决问题...
http://thesinkfiles.hubpages.com/hub/Regex-for-BBCode-in-PHP
function parseCode($txt)
{
// these functions will clean the code first
$ret = strip_tags($txt);
// code replacements
$ret = preg_replace('#\[b\](.+)\[\/b\]#iUs', '<b>$1</b>', $ret);
$ret = preg_replace('#\[link\=(.+)\](.+)\[\/link\]#iUs', '<a href="$1">$2</a>', $ret);
$ret = preg_replace('#\[img\](.+)\[\/img\]#iUs', '<img src="$1" alt="Image" />', $ret);
$ret = preg_replace('#\[quote\=(.+)\](.+)\[\/quote]#iUs', '<div class="quote">$2</div><div class="quote-by">By: $1</div>', $ret);
// return parsed string
return $ret;
}
【讨论】:
$ret = preg_replace('#\[img\](.+)\[\/img\]#iUs', '<img src="$1" alt="img">', $ret);
但一般来说,您需要一个专用的 phpBB 脚本或 phpBB 类。 甚至 PHP 本身也有 BBCode 文本处理器:http://www.php.net/manual/en/book.bbcode.php
【讨论】:
你可以测试一下
$str= preg_replace('~\[img\](.*)\[\/img\]~si', '<img src="$1" alt="$1">', $str);
【讨论】:
$str 以避免严重的安全漏洞。 (htmlentities($str))