0

0

PHP写的UBB代码转换HTML代码

PHP中文网

PHP中文网

发布时间:2016-05-25 17:11:48

|

1926人浏览过

|

来源于php中文网

原创

[PHP]代码 

url      = true;       //启用url自动解析   默认false
$eq->html     = true;       //启用HTML编码(处理<,>,全角/半角空格,制表符,换行符)默认true
$eq->image    = true;       //启用图象标签解析  默认true
$eq->font     = true;       //启用字体标签解析  默认true
$eq->element  = true;       //启用外部元素解析  默认true
$eq->flash    = true;       //启用Flash解析     默认true
$eq->php      = true;       //启用语法高亮显示  默认true
//ubbEncode参数结束

echo($eq->getImageOpener());//输出图片自动缩放所需js函数
echo $eq->htmlEncode();          //输出ubb编码后字符串
echo"
"; echo $eq->ubbEncode(); //输出ubb编码后字符串 echo"
"; echo $eq->removeHtml(); //输出移除html标签的字符串 echo"
"; echo $eq->ubbEncode(); //输出移除ubb标签的字符串 支持ubb标签列表: 图片类: [img]http://www.php.cn/[/img] 插入图片 [limg]http://www.php.cn/[/limg] 图片左绕排 [rimg]http://www.php.cn/[/rimg] 图片右绕排 [cimg]http://www.php.cn/[/cimg] 图片居中绕排 文本控制类: [br] 换行符 [b]粗体字[b] [i]斜体字[i] [u]下划线[u] [s]删除线[s] [sub]文字下标[sub] [sup]文字上标[sup] [left]文字左对齐[left] [right]文字右对齐[right] [center]文字居中[center] [align=(left|center|right)]文字对齐方式[align] [size=([1-6])]文字大小[size] [font=(字体)[font] [color=(文字颜色)][color] [list]无序列表[list] [list=s]有序列表[list] [list=(A|1|I)]有序列表(列表方式为(abc,123,I II III))[list] [list=(num)]有序列表(自num开始计数)[list] [li]列表单元项[li] 外部元素类: [url]链接[/url] [url=(链接)]链接文字[/url] [email]邮件地址[/email] [email=(邮件地址)]说明文字[/email]邮件地址 [quote]引用块[/quote] [iframe]内插帧地址[/iframe] [iframe=(内插帧高度)]内插帧地址[/iframe] [swf]flash动画地址[/swf] [swf=宽度,高度]flash动画地址[/swf] 代码块: [code][/code] [php][/php] [code 代码块名称][/code] [php 代码块名称][/php] 如需使用php语法高亮请务必在代码块两端加上""标签 */ class EncodeQ3boy { var $str = ""; var $iconpath = "/image/icon";//图标文件路径 var $imagepath = "/upfiles/article";//图片文件默认路径 //var $tagfoot = ' border="1" onload="ImageLoad(this);" onClick="ImageOpen(this)" style="cursor: hand" ';//图片文件附加属性 var $tagfoot = ' border="1" style="cursor: hand" ';//图片文件附加属性 var $url = false; //url自动解析 var $html = true; //HTML编码 var $image = true; //解析图象标签 var $font = true; //字体标签 var $element = true; //外部元素 var $flash = true; //Flash var $php = true; //语法高亮显示 var $others = true; //ubb转换时候的其他处理 function EncodeQ3boy($str='',$imgph='') { if($str) { $str = strtr($str,array("\n\r"=>"\n","\r\n"=>"\n","\r"=>"\n"," "=>" ")); $this->str = $str; } if($imgph) $this->imagepath = $imgph; } function getImageOpener() { return ""; } function removeHtml($str='') { if(!$str) $str = $this->str; return strip_tags($str); } function removeUbb($str='') { if(!$str) $str = $this->str; return preg_replace("/\[\/?\w+(\s+[^\]\s]+)*\s*\]/is","",$str); } function htmlEncode($str='') { if(!$str) $str = $this->str; $str = preg_replace("/\n{2,}/s","\n\n",$str); return str_replace("\n","\n
",$str); } function bbcodeurl($url, $tags) { if(!preg_match("/<.+?>/s", $url)) { return sprintf($tags, $url, addslashes($url)); } else { return ' '.$url; } } function parseimg($width, $height, $src) { return $this->bbcodeurl($src, '@@##@@ 0 ? " width=\"$width\"" : '').($height > 0 ? " height=\"$height\"" : '')." src=\"$src\" border=\"0\" alt=\"\" />"); } function ubbEncode($str='') { if(!$str) $str = $this->str; $rpl_ary = array(); $reg_ary = array(); if($this->html) $str = $this->htmlEncode($str,true); $tagfoot = $this->tagfoot; $icon = $this->iconpath; $image = $this->imagepath; if($this->php) { preg_match_all('/(\n\
)*\[(php|code)\s*(.*?)\]\s*(.+?)\s*\[\/(php|code)\](\n\
)*/is',$str,$ary); $str = preg_split('/(\n\
)*\[(php|code)\s*(.*?)\]\s*(.+?)\s*\[\/(php|code)\](\n\
)*/is',$str); } if($this->url){ $reg_ary = array_merge($reg_ary,array( '/(?image) { $reg_ary = array_merge($reg_ary,array( "/\[img\]\s*([^\[\<\r\n]+?)\s*\[\/img\]/is", "/\[img=(\d{1,4})[x|\,](\d{1,4})\]\s*([^\[\<\r\n]+?)\s*\[\/img\]/is", '/\[img\]\s*http(s?):\/\/(\S+)\s*\[\/img\]/i',//1 '/\[limg\]\s*http(s?):\/\/(\S+)\s*\[\/limg\]/i',//2 '/\[rimg\]\s*http(s?):\/\/(\S+)\s*\[\/rimg\]/i',//3 '/\[cimg\]\s*http(s?):\/\/(\S+)\s*\[\/cimg\]/i',//4 '/\[img\]\s*([^\/:]+)\s*\[\/img\]/i',//5 '/\[limg\]\s*([^\/:]+)\s*\[\/limg\]/i',//6 '/\[rimg\]\s*([^\/:]+)\s*\[\/rimg\]/i',//7 '/\[cimg\]\s*([^\/:]+)\s*\[\/cimg\]/i',//8 '/\[img\]\s*(\S+)\s*\[\/img\]/is',//9 '/\[limg\]\s*(\S+)\s*\[\/limg\]/i',//10 '/\[rimg\]\s*(\S+)\s*\[\/rimg\]/i',//11 '/\[cimg\]\s*(\S+)\s*\[\/cimg\]/i',//12 )); $rpl_ary = array_merge($rpl_ary,array( $this->bbcodeurl('\\1', '@@##@@'), $this->parseimg('\\1', '\\2', '\\3'), '@@##@@',//1 '@@##@@',//2 '@@##@@',//3 '

@@##@@

',//4 '@@##@@',//5 '@@##@@',//6 '@@##@@',//7 '

@@##@@

',//8 '@@##@@',//9 '@@##@@',//10 '@@##@@',//11 '

@@##@@

',//12 )); } if($this->font) { $reg_ary = array_merge($reg_ary,array( '/\[br\]/i', '/\[b\]/i', '/\[\/b\]/i', '/\[i(=s)?\]\s*(.+?)\s*\[\/i\]/is', '/\[u\]\s*(.+?)\s*\[\/u\]/is', '/\[s\]\s*(.+?)\s*\[\/s\]/is', '/\[sub\]\s*(.+?)\s*\[\/sub\]/is', '/\[sup\]\s*(.+?)\s*\[\/sup\]/is', '/\[left\]/i', '/\[\/left\]/i', '/\[right\]/i', '/\[\/right\]/i', '/\[center\]/i', '/\[\/center\]/i', '/\[align=\s*(left|center|right)\]/i', '/\[\/align\]/i', '/\[size=\s*([\.|\d])\s*\]/i', '/\[\/size\]/i', '/\[size=(\d+(\.\d+)?(px|pt|in|cm|mm|pc|em|ex|%)+?)\]/i', '/\[font=\s*(.*?)\s*\]/i', '/\[\/font\]/i', '/\[color=\s*(.*?)\s*\]/i', '/\[\/color\]/i', '/\[list\]/i', '/\[\/list\]/i', '/\[list=s\]/i', '/\[\/list\]/i', '/\[list=(A|1|I)\]/i', '/\[\/list\]/i', '/\[list=(\S+?)\]/i', '/\[\/list\]/i', '/\[li\]/i', '/\[\/li\]/i', '/\[p=(\d{1,2}), (\d{1,2}), (left|center|right)\]/i', '/\[float=(left|right)\]/i' )); $rpl_ary = array_merge($rpl_ary,array( '
', '', '', '\\2', '\\1', '\\1', '\\1', '\\1', '

', '

', '

', '

', '

', '

', '

', '

', '', '', '', '', '', '', '', '
    ', '
', '
    ', '
', '
    ', '
', '
    ', '
', '
  • ', '
  • ', '

    ', '' )); } if($this->element){ $reg_ary = array_merge($reg_ary,array( '/\[url=\s*(.+?)(,1)?\s*\]\s*(.+?)\s*\[\/url\]/i', '/\[url]\s*(.+?)\s*\[\/url\]/i', '/\[email=\s*(.+?)\s*\]\s*(.+?)\s*\[\/email\]/i', '/\[email]\s*(.+?)\s*\[\/email\]/i', '/\[quote\]\s*(
    )?\s*(.+?)\s*\[\/quote\]/is', '/\[iframe\]\s*(.+?)\s*\[\/iframe\]/is', '/\[iframe=\s*(\d+?)\s*\]\s*(.+?)\s*\[\/iframe\]/is', )); $rpl_ary = array_merge($rpl_ary,array( '\3 ', '\1 ', '\2 ', '\1 ', '

    \2
    ', '
    如果你的浏览器不支持嵌入框,请点这里查看', '
    如果你的浏览器不支持嵌入框,请点这里查看', )); } if($this->flash){ $reg_ary = array_merge($reg_ary,array( '/\[swf\]\s*(.+?)\s*\[\/swf\]/i', '/\[swf=(\d+)\,(\d+)\]\s*(.+?)\s*\[\/swf\]/i' )); $rpl_ary = array_merge($rpl_ary,array( '@@@###@@@', '@@@###@@@' )); } if($this->others){//处理特殊ubb问题 $reg_ary = array_merge($reg_ary,array( '/\[upload=\d+]/i', '/\[attachment=(\d+?)\]/i', '/\[attach\]\s*(\d+?)\s*\[\/attach\]/i', '/\[qq\]\s*(\d+?)\s*\[\/qq\]/i', '/\[indent\]/i', '/\[\/indent\]/i' )); $rpl_ary = array_merge($rpl_ary,array( '', '', '\\1', 'QQ:\\1', '
    ', '
    ' )); } if(sizeof($reg_ary)&&sizeof($rpl_ary))$str = preg_replace($reg_ary,$rpl_ary,$str); if($this->php) { $tmp = $str[0]; for($i=0; $i'<','youjiankuohaophpcn'=>'>'," "=>" ","
    "=>"")))); $tmp .= '
    '.(trim($ary[3][$i])?trim($ary[3][$i]):'代码片段:').'
    '.ob_get_contents().'
    '.$str[$i+1]; ob_end_clean(); } $str = $tmp; unset($tmp); } return $str; } } ?>

                       

    Replit Ghostwrite
    Replit Ghostwrite

    一种基于 ML 的工具,可提供代码完成、生成、转换和编辑器内搜索功能。

    下载

                       

    PHP写的UBB代码转换HTML代码PHP写的UBB代码转换HTML代码PHP写的UBB代码转换HTML代码PHP写的UBB代码转换HTML代码PHP写的UBB代码转换HTML代码PHP写的UBB代码转换HTML代码PHP写的UBB代码转换HTML代码PHP写的UBB代码转换HTML代码PHP写的UBB代码转换HTML代码PHP写的UBB代码转换HTML代码PHP写的UBB代码转换HTML代码PHP写的UBB代码转换HTML代码PHP写的UBB代码转换HTML代码PHP写的UBB代码转换HTML代码
    PHP速学教程(入门到精通)
    PHP速学教程(入门到精通)

    PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

    下载

    相关标签:

    php

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    相关专题

    更多
    php源码安装教程大全
    php源码安装教程大全

    本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

    7

    2025.12.31

    php网站源码教程大全
    php网站源码教程大全

    本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

    4

    2025.12.31

    视频文件格式
    视频文件格式

    本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

    7

    2025.12.31

    不受国内限制的浏览器大全
    不受国内限制的浏览器大全

    想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

    7

    2025.12.31

    出现404解决方法大全
    出现404解决方法大全

    本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

    42

    2025.12.31

    html5怎么播放视频
    html5怎么播放视频

    想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

    4

    2025.12.31

    关闭win10系统自动更新教程大全
    关闭win10系统自动更新教程大全

    本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

    3

    2025.12.31

    阻止电脑自动安装软件教程
    阻止电脑自动安装软件教程

    本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

    3

    2025.12.31

    html5怎么使用
    html5怎么使用

    想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

    2

    2025.12.31

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    PHP课程
    PHP课程

    共137课时 | 8.1万人学习

    JavaScript ES5基础线上课程教学
    JavaScript ES5基础线上课程教学

    共6课时 | 6.9万人学习

    PHP新手语法线上课程教学
    PHP新手语法线上课程教学

    共13课时 | 0.8万人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号