一个ubbcode的函数,速度很快.

前面见到有人发表
但是速度比较慢,也非常长
这里给出一种

function ubb($str) {  
$color=Array('red','blue','green');
$str=eregi_replace('\[url\]([a-zA-Z0-9@:%_.~#-\?&]+)\[\/url\]','<a href=http://\\1>\\1</a>',$str);//url
$str=eregi_replace('\[url=http://([a-zA-Z0-9@:%_.~#-\?&]+)\](.+)\[\/url\]','<a href=\\1 target=_blank>\\2</a>',$str);
$str=eregi_replace('\[url=([a-zA-Z0-9@:%_.~#-\?&]+)\](.+)\[\/url\]','<a href=http://\\1 target=_blank>\\2</a>',$str);
$str=eregi_replace('\[img\]([a-zA-Z0-9@:%_.~#-\?&]+)\[\/img\]','<img src=http://\\1>\\1</img>',$str);//img
$str=eregi_replace('\[h([1-6])\](.+)\[\/h[1-6]\]','<h\\1>\\2</h\\1>',$str);//h1-6
$str=eregi_replace('\[email\]([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})\[\/email\]','<a href=mailto:\\1>\\1</a>',$str);//email
$str=eregi_replace('\[email=([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})\](.+)\[\/email\]','<a href=mailto:\\1>\\2</a>',$str);
$str=eregi_replace('\[b\](.+)\[\/b\]','<b>\\1</b>',$str);
$str=eregi_replace('\[i\](.+)\[\/i\]','<i>\\1</i>',$str);
$str=eregi_replace('\[size=(.+)\](.+)\[\/size\]','<font size=\\1>\\2</font>',$str);
$str=eregi_replace('\[color=(.+)\](.+)\[\/color\]','<font color=\\1>\\2</font>',$str);
$str=eregi_replace('\[sub\](.+)\[\/sub\]','<sub>\\1</sup>',$str);//下裱
$str=eregi_replace('\[sup\](.+)\[\/sup\]','<sup>\\1</sup>',$str);//上标
for($i=0;$i<=count($color);$i++)$str=eregi_replace('\['.$color[$i].'\](.+)\[\/'.$color[$i].'\]','<font color='.$color[$i].'>\\1</font>',$str);
$str=preg_replace("/\[quote\](.+?)\[\/quote\]/is","<blockquote><font size='1' face='Courier New'>quote:</font><hr>\\1<hr></blockquote>", $str);
$str=preg_replace("/\[code\](.+?)\[\/code\]/is","<blockquote><font size='1' face='Times New Roman'>code:</font><hr color='lightblue'><i>\\1</i><hr color='lightblue'></blockquote>", $str);
$str=preg_replace("/\[sig\](.+?)\[\/sig\]/is","<div style='text-align: left;color: darkgreen;margin-left: 5%'><br><br>--------------------------<br>\\1<br>--------------------------</div>", $str);
return $str;
}

(0)

相关推荐

  • 一个ubbcode的函数,速度很快.

    前面见到有人发表 但是速度比较慢,也非常长 这里给出一种 function ubb($str) {  $color=Array('red','blue','green'); $str=eregi_replace('\[url\]([a-zA-Z0-9@:%_.~#-\?&]+)\[\/url\]','<a href=http://\\1>\\1</a>',$str);//url $str=eregi_replace('\[url=http://([a-zA-Z0-9@:%_

  • 一个Js文件函数中调用另一个Js文件函数的方法演示

    我们知道,在html中,利用<script language="javascript" type="text/javascript" src="./script.js"></script>引入的两个js是不可以相互调用的.那么该如何解决呢?当然,你可以将代码通通copy过来,也许你并不喜欢这样. 例如有这样一个html,里面有一个按钮,当按下时调用b.js文件中的方法b().而b()中又要调用a.js文件中的方法a().若

  • 一个目录遍历函数

    一个目录遍历函数 <?php function dirtree($path="./test") {  echo "<dl>";  $d = dir($path);  while(false !== ($v = $d->read())) {    if($v == "." $v == "..")      continue;    $file = $d->path."/".$v;

  • php访问数组最后一个元素的函数end()用法

    本文实例讲述了php访问数组最后一个元素的函数end()用法.分享给大家供大家参考.具体分析如下: end()函数在PHP中用于检索数组中的最后一个元素.end()函数需要一个数组作为其唯一参数,并返回给定数组最后一个元素的元素值. $users = array ("baidu.com", "haosou.com", "sina.com", "jb51.net"); print end($users); 上面的代码返回:jb5

  • php中删除数组的第一个元素和最后一个元素的函数

    对于一个php数组,该如何删除该数组的第一个元素或者最后一个元素呢?其实这两个过程都可以通过php自带的函数 array_pop 和 array_shift 来完成,下面就具体介绍一下如何来操作. (1)使用 array_pop 删除数组的最后一个元素,例如: $user=array('apple','banana','orange'); $result=array_pop($user); print_r($result); print_r($user); 结果将是: orange array(

  • js当一个变量为函数时 应该注意的一点细节小结

    先看一段简单的代码: 复制代码 代码如下: var testFun=function (name,age){ var job='Flash Develop'; return new testFun.init(name,age,job); } testFun.init=function(name,age,job){ return 'name:'+name+',age:'+age+',job:'+job+''; } alert(testFun('vincent',30)); //[object Ob

  • 封装了一个支持匿名函数的Javascript事件监听器

    关于js中的事件监听大家用的比较多了,无非是判断浏览器是否支持addEventListener和attachEvent,网上搜索关于事件监听的方法也挺多,但是总有些不是很完善.下面的方法中对于添加事件监听的方法是一样的,只不过在取消事件绑定上面做了点手术,现在可以支持匿名函数的使用,所以在绑定事件的时候不再需要给函数单独命名了. 主要代码: 复制代码 代码如下: /*绑定事件与取消绑定*/var handleHash = {};var bind = (function() { if (windo

  • Vue手把手教你撸一个 beforeEnter 钩子函数

    为什么要自造beforeEnter钩子函数? 看下问题场景:项目中有一单词列表页面,每个cell都会备注该单词是否已经掌握,点击cell进入详情页,可对该单词进行学习,并标记单词是否掌握,并且在详情页面中也可以通过点击前进 后退 按钮学习其他的单词.所以但我点击返回时,单词列表要展示所有单词用户掌握的最新情况. 最终的页面关系是这样的: ​ wordListPage --> wordDetail (对一系列单词进行学习,退出)--> wordListPage(刷新单词列表) 对于上面的场景,使

  • JavaScript实现的一个日期格式化函数分享

    由于在工作中,经常需要对日期进行格式化,不像后端那样,有方便的方法可调用,可以在date的对象prototype中定义一个format方法,见如下: 复制代码 代码如下: // 日期时间原型增加格式化方法 Date.prototype.Format = function (formatStr) {     var str = formatStr;     var Week = ['日', '一', '二', '三', '四', '五', '六']; str = str.replace(/yyyy

  • js下写一个事件队列操作函数

    前两天在网上看到这一系列的文章<写一个JavaScript异步调用框架1,2,3,4,5,6>. 异步操作可能会产生你不希望的事件触发顺序.这个问题以前也遇到过,当时没想太多,也就是直接多层嵌套(在ajax返回以后嵌套下一个事件)来解决. 认真的看了一遍.看的头昏,不得不说我可能基础并不好,在大局上的掌握也不好.d反正我是觉得很难理解,也不觉得它的调用时够方便的. 如果是这么调用: var chain = Async.go(0); chain .next(function(){setTimeo

随机推荐