版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan
ubb代码,写过blog或者论坛的应该都知道.就是一种替代html标签的东西
在ubb实际使用当中用的最多的一个函数就是替换,就是把ubb替换成html,或者html替换成ubb(?这个用的少.)
ubb在很多编辑内容的时候会被用到.各大网站都有应用.为什么要用?其实我觉得不用ubb也可以解决所有的问题.没有必须要用什么技术的时候.只是有时侯要采用较成熟的,开发周期短的,相关资料多的,用户体验好的......
ubb在添加的时候是手动加的,一般都只需要解析成html的函数
[B]加粗[/B][U]下划[/U][I]斜[/I]
变成:
<strong>加粗</strong><u>下划</u><em>斜</em>
下面是我写的一个简单的类和测试代码
<?php
/**
* @name test.php
* @date Tue Dec 04 23:07:31 CST 2007
* @copyright 马永占(MyZ)
* @author 马永占(MyZ)
* @link http://blog.csdn.net/mayongzhan/
*/
header('Content-Type:text/html;charset=utf-8');
class UBB
{
private $str; //要替换的字符串
private $pattern = array(); //ubb标签
private $replace = array(); //html标签
function UBB()
{
$this->createPattern();
$this->createReplace();
}
//初始当前的pattern
private function createPattern()
{
$this->pattern = array('/\[b\]\s*(.+?)\[\/b\]/is',
'/\[u\]\s*(.+?)\[\/u\]/is',
'/\[i\]\s*(.+?)\[\/i\]/is');
}
//初始当前的pattern
private function createReplace()
{
$this->replace = array('<strong>\\1</strong>',
'<u>\\1</u>',
'<em>\\1</em>');
}
//附加到当前的pattern中
public function setPattern($pattern)
{
$this->pattern = array_merge($this->pattern, $pattern);
}
//附加到当前的replace中
public function setReplace($replace)
{
$this->replace = array_merge($this->replace, $replace);
}
//替换
public function swap($str)
{
$this->str = preg_replace($this->pattern, $this->replace, $str);
return $this->str;
}
}
//test
$str = "[B]加粗[/B][U]下划[/U][I]斜[/I]";
$ubb = new UBB();
echo $ubb->swap($str);
?>
在网上有个写的很好的ubb类,很不错,好象在chinaunix上见过.可以去找找
v