zoukankan      html  css  js  c++  java
  • 正则表达式 UBB 实例

    <?php
    header('Content-Type:text/html;charset:utf-8');

    $str = "
    [b]郭钱[/b]<br/>
    [i]郭钱[/i]<br/>
    [u]郭钱[/u]<br/>
    [font=宋体]郭钱[/font]<br/>
    [color=Red]郭钱[/color]<br/>
    [size=6]郭钱[/size]<br/>
    [align=left]郭钱[/align]<br/>
    [align=center]郭钱[/align]<br/>
    [align=right]郭钱[/align]<br/>
    [url=http://www.baidu.com]郭钱[/url]<br/>
    [url=www.baidu.com]www.baidu.com[/url]<br/>
    [email=ybbqg@126.com]ybbqg@126.com[/email]<br/>
    [img]http://dx/static/image/common/logo.png[/img]<br/>
    ";
    echo $str;
    echo "<br>";
    echo con_ubb($str);

    function con_ubb($str) {
        $pattern = array(
            "/\[b\](.+?)\[\/b\]/is",
            "/\[i\](.+?)\[\/i\]/is",
            "/\[u\](.+?)\[\/u\]/is",
            "/\[font=([.\w\x7f-\xff]+?)\](.+?)\[\/font\]/is",
            "/\[color=([a-z]{3,}|#?[0-9a-f]{6})\](.+?)\[\/color\]/is",
            "/\[size=(\d{1,2})\](.+?)\[\/size\]/s",
            "/\[align=(left|center|right)\](.+?)\[\/align\]/is",
            "/\[url=(.+?)\](.+?)\[\/url\]/is",
            "/\[url\]www\.(.+?)\[\/url\]/is",
            "/\[email=([.a-z0-9]+?@[.a-z0-9]+?)\](.+?)\[\/email\]/is",
            "/\[img\](.+?)\[\/img\]/"
        );
        $replacement = array(
            "<b>\\1</b>",
            "<i>\\1</i>",
            "<u>\\1</u>",
            "<font face='\\1'>\\2</font>",
            "<font color='\\1'>\\2</font>",
            "<font size='\\1'>\\2</font>",
            "<div align='\\1'>\\2</div>",
            "<a href='http://blog.163.com/ybbqg@126/blog/\\1'>\\2</a>",
            "<a href='http://www.\\1'>www.\\1</a>",
            "<a href='mailto:\\1'>\\2</a>",
            "<img src='http://blog.163.com/ybbqg@126/blog/\\1'\/>"
        );
        $str = preg_replace($pattern, $replacement, $str);
        return $str;
    }

    ?>

  • 相关阅读:
    使用Ant Design的Table和Checkbox模拟Tree
    js中的按位取反运算符~
    Antd的Table组件嵌套Table以及选择框联动
    antd的Select,DatePicker,Cascader等组件选项框随页面滚动的问题解决
    Promise简介以及常用方法
    js一键复制文本
    react中使用pre标签不生效的解决方法
    使用html2canvas将html通过canvas转换成图片
    谷歌浏览器新开页面进程问题
    如何使用Context
  • 原文地址:https://www.cnblogs.com/ybbqg/p/2399640.html
Copyright © 2011-2022 走看看