#支持流程中混合处理,原理:把所有内容看作一个不分割的phpcode

#不支持[php]=\$var[/php]输出,要用echo("\$var")来输出。

#修正语句错误时,DIY失效问题。

function sxx_block_display_batch($bid)

{

$mixed_code=block_fetch_content($bid);

#手动取类型,全局的有时候不好用。

$sql="select blockclass from ".DB::table("common_block")." where bid=$bid";

$query=DB::query($sql);

if($row=DB::fetch($query))

{

$blockclass=$row['blockclass'];

}else

{

echo ("no block id:$bid,Please check your database.");

echo ($mixed_code);

return;

};

if(

$blockclass=="html_html" #只处理自定义HTML模块

&& ($_GET['diy']!="yes") #支持DIY当语句错误时可以修改

)

{

#不用[html][/html]了html直接写

$mixed_code=preg_replace("/\[html\]|\[\/html\]/i","",$mixed_code);

$phpmark1="/?"; #可以采取两种书写方式 /? phpcode ?/ 或者 [php] phpcode [/php]

$phpmark1end="?/";

$phpmark2="[php]";

$phpmark2end="[/php]";

$phpmark= (stripos($mixed_code,$phpmark1,0) ? $phpmark1:$phpmark2);

$phpmarkend = ( stripos($mixed_code,$phpmark1,0) ? $phpmark1end:$phpmark2end ) ;

$phpmarkslen= ( stripos($mixed_code,$phpmark1,0) ? 2:5 );

$phpmarkelen=  ( stripos($mixed_code,$phpmark1,0) ? 2:6 );

$spos=0;

$epos=0;

$mixed_cool="";

do

{

$epos=stripos($mixed_code,$phpmark,$spos);

if($epos!==false)

{

//有头部HTML?

$html_code=substr($mixed_code,$spos,$epos-$spos);

$mixed_cool.="echo('$html_code');";

//获取PHP代码

$spos=$epos+$phpmarkslen;

$epos=stripos($mixed_code,$phpmarkend,$spos);

if($epos!==false)

{

$php_code=substr($mixed_code,$spos,$epos-$spos);

$spos=$epos+$phpmarkelen;

$mixed_cool.=$php_code;

}else

{

echo("error!no php_end_mark.");

echo($mixed_code);

return;

};

}else

{

//有尾部HTML?

$html_code=substr($mixed_code,$spos);

$mixed_cool.="echo('$html_code');";

};

}while($epos!==false);

eval($mixed_cool);

}

else

{

echo($mixed_code);

};

};

测试代码:

Cool Thing:

/?

\$sql="select * from ".DB::table("common_block");

\$query=DB::query(\$sql);

while(\$row=DB::fetch(\$query))

{

echo("\$row[blockclass]");

?/


/?

};

?/

Cool Thing Is It?

discuz 模板php代码,自定义HTML模板DIY支持PHP代码解析相关推荐

  1. 使用 .NET Core模板引擎创建自定义的模板和项目

    本文要点 .NET CLI 包含了一个模板引擎,它可以直接利用命令行创建新项目和项目项.这就是"dotnet new"命令. 默认模板集涵盖了默认控制台和基于 ASP.NET 的应 ...

  2. vscode生成html模板快捷键以及自定义html模板

    一.生成html快捷键 ! + tab ! + Enter 注:! 是英文的感叹号,其次直接输入 ! 再按tab或enter键,不要加 <后再按 ! + tab/enter,这种是生成不了htm ...

  3. jquery 定义html模板,jquery – 使自定义html模板使自举popover工作

    我正在使用输入组文本框,我需要Bootstrap 3 popover才能正常工作,而Popover模板应该由我设计和设计. 所以我目前与我的html是: 当输入组图标点击时,我想要一个popover打 ...

  4. AltiumDesigner PCB案牍(2)——自定义原理图模板

    AltiumDesigner PCB案牍(1)--自定义原理图模板 一.自定义原理图模板 1.建立空白的原理图文件 2.取消当前原理图的模板 3.绘制新的模板内容 4.保存为新的模板文件 二.使用原理 ...

  5. 将含有自定义代码的Infopath模板发布到Sharepoint表单库中

    最近一好友通过msn曰:"ocean最近没有写点什么?".想想也确实应该写点什么了.从实际的项目经验来说,也确实有很多东西可以写,至少也能写个小册子,但是始终没有静下心来写.上次去 ...

  6. 乐乎常用的html源码,点点网关闭自定义html模板代码功能,网易lofter重新映入眼帘...

    点点网大家都熟悉,在之前我也介绍过,很出色的一款轻博客. 但是在我准备正式使用的时候,点点却发生了意想不到的变故,点点不顾广大点友的利益,将唯一独特的吸引我们的功能:自定义html模板代码功能残忍的关 ...

  7. VS2019:创建模板文件,自定义代码片段

    一.实现目的 1.新建一个cpp文件后,新的文件里有自动生成的代码,包括头文件,作者,实时的时间等 2.输入关键词后,自动弹出对应的代码片段,敲击"tab"可以插入片段,如:函数功 ...

  8. VS2015自定义类模板的方法

    在前一段时间忽然想给自己电脑上的vs新建类的时候添加一个自定义个注释,但是在网上搜了很久都是说vs2012之类的方法系统也都是win7.XP之类的独独没有win8的.故此自己不断的尝试修改发现方法如下 ...

  9. 写一个迷你版Smarty模板引擎,对认识模板引擎原理非常好(附代码)

    前些时间在看创智博客韩顺平的Smarty模板引擎教程,再结合自己跟李炎恢第二季开发中CMS系统写的tpl模板引擎.今天就写一个迷你版的Smarty引擎,虽然说我并没有深入分析过Smarty的源码,但是 ...

  10. VSCode 自定义html5模板

    新建html快捷键 当我们想在VSCode中新建html代码时,可以 输入! 然后回车或者Tab即可自动生成一个html文件模板,效果如下: (二)自定义html5模板 但我们每次新建html模板时候 ...

最新文章

  1. 取消ssh密钥文件登录_Xshell密钥登入,增加安全
  2. 基于Conditional Layer Normalization的条件文本生成
  3. axure元件库 文件上传_手把手教你打造一套属于产品经理自己的元件库
  4. linux之间安全传输文件,使用SCP安全地传输文件[Linux] | MOS86
  5. 从零开始刷Leetcode——数组(697.717.724)
  6. 【路径规划】基于matlab改进的蚁群算法机器人栅格地图避障路径规划【含Matlab源码 905期】
  7. 推荐 Word、EXCEL必备工具箱
  8. ERP(企业资源计划)
  9. AtCoder Grand Contest 003 D - Anticube
  10. 一元云购系统对接短信功能图文教程—【V4版】
  11. c++实现图书管理系统v2.0
  12. 福建省一级计算机考试文字录入,2015福建省机关事业工勤人员计算机文字录入员工作总结.doc...
  13. 赵小楼《天道》《遥远的救世主》深度解析(41)芮小丹的恋爱观背后的文化属性
  14. kso经验记录 --spring.net的应用以及配置
  15. HJ95 人民币转换
  16. 体验过智慧家居后,我再也不想回家了……
  17. TransUNet:Transformers Make Strong Encoders for Medical Image Segmentation用于医疗图像分割的transformers编码器详解
  18. python第三方库文件传输_慢步学习,python库文件概述,再来点第三方库文件安装的干货...
  19. 英语计算机主板接口有,i/o(计算机接口)_百度百科
  20. python3编写http代理服务器_HTTP代理服务器[Python]

热门文章

  1. shift键计算机功能,电脑shift键常用快捷键使用攻略
  2. 在计算机运行时 把程序和数据存放在内存中,单选(2.5分) 在计算机运行时,把程序和数据一样存放在内存中,这是1946年由__________领导的小组正式提出并论证的。‍...
  3. 我的第一篇CSDN博客
  4. 计算机毕业设计参考文献
  5. PR常见问题:pr导入素材没有音轨怎么办
  6. 专访京东科技张亮:本土开源需形成吸纳开发者的靶心
  7. 中序线索化二叉树的遍历
  8. kodwebserver mysql_kod云项目搭建
  9. kodexplor类似php,Windows 下搭建 PHP + Nginx + KODExplorer
  10. 程序员需要学会宏观看待问题