`
vtrtbb
  • 浏览: 361539 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一个php解析CMS标签函数

    博客分类:
  • php
阅读更多
<?php
    
	/**
		author:zhangzhiyu
		email:zhang.z.y@163.com
		msn:zhang.z.y@163.com
	**/
    
    
	$TemplateCode = "<div><tag_ZyTag?TagType=1&InfoClass=001005007><tag_ZyTag?TagType=2&InfoClass=001005007></div>";
    $HtmlCode = "";

	$doMake = "";
    $RightTag = "";
    $TemplateLen = strlen(trim($TemplateCode));
    $TagName = "";
    $FindEnd = false;
    $isEndTemplate = false;
    $SearchTag = "<tag_";//     '标记的起始
    $SearchTagE = ">";//        '标记的结束
    $StartPos = 0;//            '在循环中记录当前已经处理到的位置
    $MyPos = 0;
    $MyPosE = 0;

	 While (!$FindEnd && $TemplateLen > 0) {
		//找到下一个标记的起始位置
	   $MyPos = strpos($TemplateCode,$SearchTag,$StartPos);
	   if ($MyPos == 0) {
		    $FindEnd = true;
            //将剩余的代码追加保存到HtmlCode
            $HtmlCode =  $HtmlCode . substr($TemplateCode, $StartPos);
	   }else{
			//如果找到了标记起点
            //先将介于这个标记起点和上一个标记终点之间的代码保存到HtmlCode
			$HtmlCode =  $HtmlCode . substr($TemplateCode, $StartPos, $MyPos - $StartPos);
            //从这个位置开始找这个标记结束的位置
            $MyPosE = strpos($TemplateCode,$SearchTagE,$MyPos);
            //取出标记以及标记携带的参数
            $TagName = substr($TemplateCode, $MyPos + 5, $MyPosE - $MyPos - 5);
            if($TagName == "" ){
                //WtLog ("模板中发现问题:发现空标记!")
            }
            //从标记中提取出参数部分,即?以后的部分(不包括?)
            $TagName = substr($TagName, strpos($TagName, "?",1) + 1);           
			$arrTagName = explode("&",$TagName);

			//变量重置
			$TagType = "";    //信息类型
            $InfoClass = "";  //信息分类
            $ListCss = "";    //应用css
			$PageSize = "";   //信息条数
			$TitleLen = "";   //标题长
			$NewWindow = "";  //是否新窗口打开
			

			for ($i=0;$i<count($arrTagName);$i++) {
				$TempTagName = $arrTagName[$i];
				//根据=再次进行分割
				$arrParamter = explode("=",$TempTagName);
				switch ($arrParamter[0]) {
					case "TagType": //类型
					    $TagType = $arrParamter[1];
						break;
					case "infoclass":
						$InfoClass = $arrParamter[1];
						break;
					case "listcss":
						$listcss = $arrParamter[1];
						break;
					case "pagesize";
					    $PageSize = $arrParamter[1];
						break;
					case "titlelen":
                        $TitleLen = $arrParamter[1];
					    break;
					case "newwindow":
						$NewWindow = $arrParamter[1];
					    break;
				}
			}
			//根据不同的模块类型生成不
			switch ($TagType) {
				case 1:
					$HtmlCode = $HtmlCode . "<li>你好,你好</li>";
				    break;
				case 2:
                    $HtmlCode = $HtmlCode . "<li>行文,新闻 2007-11-5</li>";
				    break;
			}			
			$StartPos = $MyPosE + 1;
	   }		
	 }
     echo $TemplateCode = $TemplateCode . $HtmlCode; //输入
?>

 

分享到:
评论

相关推荐

    基于PHP的熊海CMS 网站综合管理系统.zip

    "基于PHP的熊海CMS网站综合管理系统"是一个使用PHP编程语言开发的网站内容管理系统(CMS)。PHP是一种广泛使用的开源脚本语言,特别适合于Web开发,能够嵌入到HTML中,用于创建动态交互式网页。熊海CMS则可能是由...

    PHP168CMS整站系统

    《PHP168 CMS整站系统深度解析》 PHP168 CMS整站系统是一款基于PHP语言的内容管理系统,因其简洁的界面和强大的功能而受到广大PHP工程师的青睐。这款系统为快速建站和二次开发提供了便利,极大地节省了开发者的时间...

    苹果cms不显示视频图片 下载了 tu.php就可以解决

    在使用苹果CMS的过程中,有时用户会遇到一个问题,即视频相关的图片无法正常显示。这个问题通常是由于系统缺少关键的PHP脚本文件导致的,具体来说,就是“tu.php”文件。本文将详细解释这个问题的成因、解决方案以及...

    帝国CMS取得顶级栏目名称和链接的函数获取顶级栏目名称链接

    // 引入帝国CMS函数库 // 获取顶级栏目 $topCats = GetFirstClass(); foreach ($topCats as $cat) { echo "栏目名称: {$cat['name']} "; echo "栏目链接: $cat['link']}'&gt;{$cat['link']}&lt;/a&gt;&lt;br&gt; "; } /...

    php-CMS文件管理器

    【PHP CMS文件管理器】是一款基于PHP...通过对【PHPCMS文件管理器v4.03源码之家PHP源码其他类别】的深入研究,开发者可以提升PHP编程能力,理解MVC架构,掌握文件和数据库操作,同时了解如何构建一个实用的CMS系统。

    cms分页源码采用cms模式 ,把分页做成标签的形式可以放在任何地方使用

    例如,在PHP的CMS系统中,可能有一个类似`&lt;paginate&gt;`的标签,它会根据传递的参数(如每页显示的数量)动态生成分页的HTML代码。 在文件名"FenYeCMS"中,"FenYe"很可能是"分页"的拼音缩写,而"CMS"代表内容管理系统...

    帝国CMS实现用户自定义标签函数输出图片集大小图的方法

    接下来,我们需要在帝国CMS的后台增加一个自定义标签,以便在内容模板页中调用这个自定义函数。这个过程通常涉及登录帝国CMS管理后台,找到“系统”-&gt;“自定义标签”-&gt;“增加自定义标签”,并填写相应的标签名和调用...

    基于PHP的CMS学校网站系统 (PHP168 S系列) php版.zip

    "基于PHP的CMS学校网站系统 (PHP168 S系列) php版.zip" 这个标题表明我们讨论的是一个采用PHP语言开发的内容管理系统(CMS),专门针对学校网站的需求设计。PHP168 S系列可能是指该CMS的一个特定版本或系列,它以...

    基于PHP的帝国CMS7.5七牛云图片附件同步、上传删除插件.zip

    "基于PHP的帝国CMS7.5七牛云图片附件同步、上传删除插件"是一个专为帝国内容管理系统(Empire CMS)设计的扩展工具,旨在提升网站图片管理的便捷性和效率。此插件利用了七牛云存储服务,实现了与帝国CMS系统之间的...

    基于PHP的cms维护版源码.zip

    "基于PHP的cms维护版源码.zip" 这个标题表明这是一个包含PHP编程语言开发的内容管理系统(CMS)的维护版本的源代码压缩包。CMS是一种用于简化网站创建、管理和更新的软件平台,通常具有用户友好的界面和模块化的结构...

    PHP实例开发源码—LvyeCms(旅烨cms) php版.zip

    同时,对于想要深入理解CMS工作原理或者希望自定义开发CMS系统的人员来说,这是一个很好的学习资源。记得在学习过程中,结合“使用须知.txt”文档,了解系统的具体使用方法和注意事项,以更好地理解和应用这个PHP...

    帝国CMS灵动标签PHP代码实现标签无限嵌套的效果

    在编程中,嵌套标签指的是在一个标签内部再包含另一个或多个标签。在帝国CMS中,灵动标签通常用于从数据库中提取信息并展示在网页上。如果这些标签被嵌套使用,就可以实现更为丰富的内容展示和更复杂的逻辑操作。 ...

    php cms PHP入门例子程序

    这个"PHP CMS"是一个简单的文章发布系统,专为初学者设计,便于理解和实践PHP编程。 在PHP CMS中,你将学习到以下关键知识点: 1. **基础结构**:CMS(Content Management System)通常由前端用户界面和后端管理...

    基于PHP的狂雨小说cms内容管理系统 轻量级小说网站.zip

    综上,基于PHP的狂雨小说CMS是一个适合轻量级小说网站的解决方案,涉及到的技能包括PHP编程、数据库管理、前端开发以及网站安全等多方面知识。对于想要搭建和管理小说网站的个人或团队来说,掌握这些知识将极大地...

    PHP实例开发源码—php苹果cms视频采集插件源码.zip

    【标题】"PHP实例开发源码—php苹果cms视频采集插件源码.zip"是一个包含PHP编程语言实现的苹果CMS视频采集插件的源代码包。这个插件主要用于自动化抓取网络上的视频资源,将其整合到苹果CMS内容管理系统中,为用户...

    苹果CMS8\苹果CMS10自写API,输入JSON

    标题中的“苹果CMS8\苹果CMS10自写API,输入JSON”表明这是一个针对苹果CMS的自定义API实现,允许通过JSON格式的数据进行交互。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,...

    基于PHP的中环cms源码.zip

    【标题】"基于PHP的中环cms源码.zip" 提供的是一个基于PHP编程语言的网站内容管理系统(CMS)的源代码。这个源码可能是为了帮助开发者理解和学习如何构建一个功能完善的CMS,或者是为了允许用户根据自身需求进行二次...

    苹果cms火车头接口.zip_MAXCMS接口_maxcms采集接口_苹果CMS火车_苹果cms api调用_苹果cms采集

    "苹果CMS火车头接口"是苹果CMS系统的一个特定功能,它允许外部程序或服务与苹果CMS进行数据交互,实现自动化的内容采集和发布。"MAXCMS接口"则是MAXCMS系统提供的一种类似的功能,用于集成其他应用或服务。 苹果CMS...

    基于PHP的贤诚CMS.zip

    【标题】:“基于PHP的贤诚CMS.zip”指的是一个使用PHP编程语言开发的名为“贤诚CMS”的内容管理系统。这个系统可能是一个开源项目或者商业软件,用于帮助用户更有效地管理和发布网站内容。作为一款基于PHP的CMS,它...

Global site tag (gtag.js) - Google Analytics