成都网站建设
|
域名注册
|
虚拟主机
|
网站制作
|
网站案例
|
网站优化
|
网站推广
|
企业邮局
|
服务器租用
|
广告设计
首页
服务器租用
企业邮箱
虚拟主机
网站程序
营销推广
网站建设
域名注册
前端开发
网站备案
网站策划
|
网站建设
|
网站案例
|
虚拟主机
|
网站推广
|
云服务器
|
成都网站制作公司
|
php空间
|
独立IP空间
|
jsp虚拟主机
网站程序
java教程
asp程序
asp.net程序
vb编程
php程序
C#程序
服务器租用
web服务器
FTP服务器
服务器托管
服务器租用
vps主机服务器
企业邮箱
企业邮箱优势
企业邮箱设置
邮箱收发问题
邮箱功能讲解
邮箱其他问题
虚拟主机
主机购买
数据库
主机管理
FTP上传
主机续费升级
营销推广
seo优化
网站推广
搜索引擎
免费资源
网站建设
网站方案
网站改版
网页设计
网站维护
网站策划
域名注册
域名转入\转出
英文域名
通用网址
中文域名
域名解析
前端开发
html
jQuery
JavaScript教程
css
div+css
网站备案
备案流程指南
备案资料下载
备案常见问题
各省备案要求
移动互联网
wap手机网站
app应用开发
微网站
当前位置:
创新互联
>>
常见问题
>>
网站程序
>>
php程序
>>
PHP语言实现HTML标签自动补全代码
PHP语言实现HTML标签自动补全代码
作者:创新互联 文章来源:网站程序部 点击数:
更新时间:2011-10-30
开辟种种项目中常常遇到截取
html字符串
题目。好比博客文章列表页面截取一部门正文、文章正文翻页截取等......
一样通常环境下先用
PHP
的strip_tags函数去失全部html标签,再去失空格等,然后再用substr大概本身实现的cn_substr函数来实现截取。由于要是不先去失
html标签
,直接截取出来的字符串就会有没有闭合的标签出现,偶然乃至会截取在标签上面好比
复制代码代码如下:
</di>
本日遇到一个内容翻页截取题目:正文是用富文本编辑器写入的,编辑器上有个分页按钮,点击之后就往当前光标位置插入一个蓝色的
复制代码代码如下:
<hr/>
横线。然后
php
直接存入数据库。表现的时间,用explode函数凭据这个
复制代码代码如下:
<hr/>
标志来分成一个数组,然后凭据当前页码来表现某个片断。但是有个严峻的题目,好比富文本编辑器写入:
复制代码代码如下:
<divstyle="text-align:center">
contentofpage1
<hr/>
page2content
</div>
要是用explode函数离开后,
第一页的内容是
复制代码代码如下:
<divstyle="text-align:center">
contentofpage1
第二页的内容是:
复制代码代码如下:
page2content
</div>
如许就孕育发生了没有闭合的标签,直接表现到页面上面就会粉碎页面结构。。。
想了好久,也找了网上许多closetag函数。但是发明都针对第一页那种没有闭合的标签的闭合。对付第二种没有开头的标签就没措施了。
针对第一页那种没有闭合的标签的闭合的closetags要领是:
复制代码代码如下:
functionclosetags($html){
//不必要补全的标签
$arr_single_tags=array('meta','img','br','link','area');
//立室开始标签
preg_match_all('#<([a-z]+)(?:。*)?(?<![/|/])>#iU',$html,$result);
$openedtags=$result[1];
//立室封闭标签
preg_match_all('#</([a-z]+)>#iU',$html,$result);
$closedtags=$result[1];
//盘算封闭开启标签数目,要是雷同就返回html数据
$len_opened=count($openedtags);
if(count($closedtags)==$len_opened){
return$html;
}
//把排序数组,将末了一个开启的标签放在最前面
$openedtags=array_reverse($openedtags);
//遍历开启标签数组
for($i=0;$i<$len_opened;$i++){
//要是必要补全的标签
if(!in_array($openedtags[$i],$arr_single_tags)){
//要是这个标签不在封闭的标签中
if(!in_array($openedtags[$i],$closedtags)){
//直接补全闭合标签
$html。='</'。$openedtags[$i]。'>';
}else{
unset($closedtags[array_search($openedtags[$i],$closedtags)]);
}
}
}
return$html;
}
厥后想了一个措施,使用欣赏器本身的html表明
搜索引擎
来资助补全有题目标html片断。详细做法如下:
复制代码代码如下:
<script>
vardiv=document。createElement('div');
div。innerHTML='<?phpecho("<div>这里是被截取的html片断");?>';
document。write(div。innerHTML);
</script>
原理便是先把
html
片断写入到一个空的div内里,然后再从这个div内里读取出来。别看写入和读取的属性都是inner
HTML
,写入的内容和得到的内容是纷歧样的噢。要是写入不完备的html片断,欣赏器会主动补全修正。读取出来的时间就已经是完备的htmldom片断了。
但是如许有个毛病,由于是Js加载内容信息的,会对搜刮
搜索引擎优化
欠好。
php.ini修改php上传文件大小限制的方法详解
:上一篇
禁用和启开fsockopen函数操作
:下一篇
php程序相关文章
php.ini修改php上传文件...
忘记PHP,phpmyadmin...
php正则表达式的模式修正符、全...
优秀的程序员需要擅长数学吗?
福利彩票幸运号码自动生成器
网站建设的开发语言都有哪些
php生成随机密码的几种方法
php站点如何设置防盗链
专注网站建设、网页设计、网站制作、企业网站建设——创新互联
移动互联网
|
网站备案
|
前端开发
|
域名注册
|
网站建设
|
营销推广
|
网站程序
|
虚拟主机
|
企业邮箱
|
服务器租用
|
热门搜索
服务电话:028-86922220 13518219792 公司地址:成都市太升南路288号锦天国际A幢10楼2号
企业邮箱:
service@cdxwcx.com
版权所有:成都创新互联科技有限公司 蜀ICP备09010846号
成都网站建设