当前位置: 网学 > 编程文档 > PHP > 正文

php下正则来匹配dede模板标签的代码

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/06/21

以下是网学网为您推荐的PHP-php下正则来匹配dede模板标签的代码,希望本篇文章对您学习有所帮助。

html代码
复制代码 代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
{t:arc row=''10''}
{t:field.title/}
{t:list row=''5''}
{t:field.title/}
{t:list row=''5''}
{t:field.title/}
{/t:list}{t:field.title/}
{/t:list}{t:field.title/}
{/t:arc}
{T:channelartlist
row=''6''
}
<dl>
<dt>{t:field name=''typename''/}{t:field.typename/}</dt>
<dd>
{t:arclist titlelen=''42'' row=''10''}
<ul class=''autod''>
<li>[field:title/]</li>
<li>([field:sendtime function="MyDate(''m-d'',@me)"/])</li>
</ul>
{/t:arclist}
</dl>{/t:channelartlist
}
{t:global.cfg_title
/}{t:var.cfg_title/}{t:global.cfg_webname /}{t:global.cfg_title/}{t:var.cfg_title/}
{t:field.title function="Html2Text(@me)"/}
{t:include
filename="header.htm"/}
{t:include filename="header.htm"
/}
{t:field.title function=''Html2Text(@me)'' }{/t:field
}
{t:array name=''asdas'' }{/t:array
}
{t:channel typeid=''1'' row=''15''}
[field:id/][field:typename/]
{/t:channel
}
{t:channel typeid=''1''} [field:id/] [field:typename/]{/t:channel}
{t:channel typeid=''1'' }[field:id/]
[field:typename/]{/t:channel
}sd
{t:channel}[field:typename/]{/t:channel
}
{t:channel typeid=''1'' row=''20'' }[field:userid/]
[field:scores/]
{/t:channel
}
</body>
</html>

php代码
复制代码 代码如下:
<?php
$str = file_get_contents("test.htm");
$skstr="{";
$skdstr="t:";
$sdstr="}";
//$reg="/{t:.*?(?:\/).*?}/si";//此无法匹配嵌套,只能一层 si s: 使前面的. 包括换行符 i:不区分大小写
//$reg="/({t:*[^{]*\/}|{t:*[^}]*}([^{]|(?R))*{\/t:.*?})/si";无限嵌套都可截取.
$reg=''/(''.$skstr.$skdstr.''*[^''.$skstr.'']*\/''.$sdstr.''|''.$skstr.$skdstr.''*[^''.$sdstr.'']*''.$sdstr.''([^''.$skstr.'']|(?R))*''.$skstr.''\/''.$skdstr.''.*?''.$sdstr.'')/si'';
preg_match_all($reg,$str,$m);
/*echo "<pre>";print_r($m[0]);echo "</pre>";exit();*/
$CTags=array();
$glarr1=array($skstr.$skdstr=>'''');//array(''{t:''=>'''');前缀
$glarr2=array(''"''=>'''',''\''''=>'''',''

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号
'=>'''',''/''=>'''');
/*
{t:array typeid=''1''}[field:typename/]{/t:array}
{t:global.title function="html2text(@me)"/}
*/
foreach($m[0] as $k=>$v){
$rarr=array();
$rarr[''str'']=$v; //原模板字符串
$vs=explode(''}'',$v); //分割取得第一部分 {t:array typeid=''1''
$va=explode('' '',$vs[0]); //分割属性 " {t:array " , " typeid=''1'' "
$vb=explode(''.'',$va[0]); //分割标签名和字段名 {t:global.title
$rarr[''tagname'']=trim(strtr(strtolower($vb[0]),$glarr1));//过滤前缀{t: 取得标签名 array 或 golbal
$rarr[''tagfield'']=strtr($vb,$glarr2); //取得字段名 title
unset($vs[0]);$vsstr=implode(''}'',$vs); //去掉前缀,返回后半段: [field:typename/]{/t:array}
$rarr[''text'']=preg_replace("/".$skstr."\/".$skdstr.$rarr[''tagname'']."(.*?)".$sdstr."/si
123下一页
点击进入论坛和大家一起交流设计,分享设计素材,结交设计朋友
  • 上一篇资讯: php中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
  • 下一篇资讯: php excel类 phpExcel使用方法介绍
  • 相关资讯

    网学推荐

    免费论文

    原创论文

    文章排行榜

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号