一个改进的UBB类
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-05-25
le(true){ $eregi_ret=eregi("[[#]{0,1}[[:alnum:]]{1,7}]",$parse,$eregi_arr); //查找[xx] if(!$eregi_ret){ $ret .= $parse; break; //如果没有,返回 } $pos = @strpos ($parse,$eregi_arr[0]); $tag_len=strlen($eregi_arr[0])-2;//标记长度 $tag_start=substr($eregi_arr[0],1,$tag_len); $tag=strtolower($tag_start); if((($tag=="url") or ($tag=="email") or ($tag=="img")) and ($this->call_time>1)){ echo $this->call_time."<br>"; return $parse;//如果不能是不能嵌套的标记,直接返回 } $parse2 = substr($parse,0,$pos);//标记之前 $parse = substr($parse,$pos+$tag_len+2);//标记之后 if(!isset($this->tags[$tag])){ echo "$tag_start<br>"; $ret .= $parse2.''[''.$tag_start.'']''; continue;//如果是不支持的标记 } //查找对对应的结束标记 $eregi_ret=eregi("[/".$tag."]",$parse,$eregi_arr); if(!$eregi_ret){ $ret .= $parse2.''[''.$tag_start.'']''; continue;//如果没有对应该的结束标记 } $pos=strpos($parse,$eregi_arr[0]); $value=substr($parse,0,$pos);//这是起止标记之间的内容 $tag_end=substr($parse,$pos+2,$tag_len); $parse=substr($parse,$pos+$tag_len+3);//结束标记之后的内容 if(($tag!="url") and ($tag!="email") and ($tag!="img")){ $value=$this->parse($value); } $ret .= $parse2; eval(''$ret .= ''.$this->tags[$tag].''("''.$tag_start.''","''.$tag_end.''","''.$value.''");''); } $this->call_time--; return $ret; } function simple($start,$end,$value){ return ''<''.$start.''>''.$value.''</''.$end.''>''; } function url($start,$end,$value){ $trim_value=trim($value); if (strtolower(substr($trim_value,0,7))!="http://") $trim_value="http://".$trim_value; if($this->urlcheck->check($trim_value)) return ''<a href="''.$trim_value.''" ''.$this->attr_url.''>''.$value.''</a>''; else return ''[''.$start.'']''.$value.''[/''.$end.'']''; } function email($start,$end,$value){ if(emailcheck($value)) return ''<a href="mailto:''.$value.''">''.$value.''</a>''; else return ''[''.$start.'']''.$value.''[/''.$end.'']''; } function img($start,$end,$value){ $trim_value=trim($value); if ((strtolower(substr($trim_value,0,7))!="http://") or ($this->urlcheck->check($trim_value))) return ''<img src="''.$trim_value.''"></img>''; else return ''[''.$start.'']''.$value.''[/''.$end.'']''; } } //测试 echo ''<html>''; echo ''<head><title>测试</title></head>''; echo ''<body>''; echo ''<form action="''.str2url($PATH_INFO).''" method="post">''; echo ''<textarea cols="100" rows="10" name="ubb">''.htmlencode4textarea($ubb).''</textarea><br>''; echo ''<input type="submit" value="转换">''; echo ''</form>''; if(isset($ubb)){ $ubbcode = |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: PHP+APACHE实现用户论证的方法下一篇: 如何在PHP中进行身份认证
关于一个改进的UBB类的所有评论