升级PHP8环境需要做以下调整:
1、PHP8会报错:in_array(): Argument #2 ($haystack) must be of type array, null given
模板标签中使用的函数:in_array 改成 dr_in_array
2、PHP8会报错:Undefined constant xxxx
数组标签主键是字符时,需要加单引号,例如:
{$aaa[xxx]}需要改成{$aaa['xxx']}
3、PHP8会报错:count(): Argument #1
模板标签中使用的函数:count
需要改成:dr_count
4、PHP8会报错:strlen(): Argument #1
模板标签中使用的函数:strlen
需要改成:dr_strlen
模板语法错误
模板语法错误的时候,需要采用最传统的方式来排查,首先找到对应的模板文件,例如****.html
然后打开这个模板文件,一行行的排除法,删除全部调用的标签,每段排除法找问题
※模板附件调用必须改成:{thumb($r['thumb'])}或:{dr_get_file($r['thumb'])}
※模板附件调用缩略图:{thumb($r['thumb'],230,150)}
※模板附件调用源文件:{dr_get_file($r['thumb'])}
站点信息输出 站点标题
{dr_site_info('site_title', $siteid)}
获取栏目数据及自定义字段
栏目数据:{dr_cat_value($catid)}
栏目名称:{dr_cat_value($catid, 'catname')}
获取单页数据及自定义字段
单页内容:{code2html(dr_page_value($catid, 'content'))}
获取模型数据及自定义字段
模型内容:{code2html(dr_value($modelid, $id, 'content'))}
原始文件的地址:{dr_get_file($t['thumb'])}
文件的下载地址:{dr_down_file($t['thumb'])}
文件的下载地址并指定文件名字:{dr_down_file($t['thumb'], '新名字')}
缩略图地址:{thumb($t['thumb'], 100, 100)}
缩略图带上水印地址:{thumb($t['thumb'], 100, 100, 1)}
缩略图从中间开始剪切,高度宽度固定:{thumb($t['thumb'], 100, 100, 0, 'crop')}
对url地址进行缩略处理:{thumb($t['thumb'], 100, 100, 0, '', 1)}
--------附件详情信息---------
{php $file = get_attachment($t['thumb']);}
附件名称:{$file['filename']}
附件扩展名:{$file['fileext']}
上传时间:{dr_date($file['uploadtime'])}
附件大小:{format_file_size($file['filesize'])}
站点信息输出 {dr_site_info('字段名称', $siteid)}
站点设置setting信息输出{dr_site_value('setting字段里的名称', $siteid)}
获取栏目数据及自定义字段{dr_cat_value($catid, '栏目字段')}
获取单页数据及自定义字段{dr_page_value($catid, '栏目字段')}
获取模型数据及自定义字段{dr_value($modelid, $id, '栏目字段')}
HTML实体字符转换code2html函数
{code2html($r['content'])}
清除HTML标记
{clearhtml($r['content'])}
获取内容
{code2html(get_content($modelid, $id))}
生成标题样式
title_style(样式, 是否随机颜色, 是否显示完整的STYLE)
栏目页面和内容页面的面包屑写法
{dr_catpos($catid, '', true, '<li> <a href="[url]">[name]</a> '.PHP_EOL.'<i class="fa fa-circle"></i> </li>'.PHP_EOL)}
栏目页面和内容页面的面包屑写法
{dr_catpos($catid, '', true, '<li> <a href="[url]">[name]</a> <i class="fa fa-circle"></i> </li>')}
顶级栏目名称:{$top.catname}
顶级栏目地址:{$top.url}
顶级栏目缩略图:{dr_get_file($top.image)}
模板代码注释note标签
在模板中使用的注释标签语法:
模板代码注释内容不会被模板所显示,作为注释功能,代码语法如下:
{note}注释内容{/note}
这句不会出现在网页中,只会在模板里面显示,方便开发者设计模板
一般开发者使用习惯性的注释语法:
<!-- xxxxxx如果这里写标签代码的话任然会被cms执行xxxxxxxx -->
那么可以改进为:
<!-- {note}注释内容{/note} -->
模板代码保护code标签
保护的作用是防止代码被模板引擎所解析,一般用在style的css和script的js语句范围,
代码语法如下:
{code}保护内容{/code}
例如:
<script>
function test(){alert("测试一下")}
</script>
其中{alert就会被cms的模板引擎解析为cms的函数了,导致出现系统故障,那么可以改进为:
{code}
<script>
function test(){alert("测试一下")}
</script>
{/code}
还有种情况是在模板中直接写cms的标签,例如:
示例语法:{$title}
那么,正常情况下,{$title}会作为一个变量输出在网页中的,现实中需要直接原样显示,所以,这时候需要用到代码保护标签:
{code}示例语法:{$title}{/code}
iCMS, LeCMS, ClassCMS, Fastadmin, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。