- 问题描述: 调试模式下,调用{dede:flink row=’6’ titlelen=”20”/} 会弹出警告Warning: Illegal string offset ‘url’ in E:\dedecms\include\taglib\flink.lib.php on line 112;
- 原因:笔者112行为
$rbtext = preg_replace("/\[field:url([\/\s]{0,})\]/isU", $row['url'],"$innertext" )
; 通过var_dump()可以知道$row
就是我们调用时设定的参数 row=’6’,即取出6个友链,不是数组,也不含url; - 解决方法:通过观察上文,会发现数据库查询结果放在对象
$dbrow
内,而不是$row
;所以将112行的$row['url']
替换为$dbrow->url
即可;类似的下面的113、114行的$row['webname'] $row['logo']
替换为$dbrow->webname $dbrow->logo
完成上述替换后,在调试模式下就不会报错了 - 注:dedecms版本:DedeCMS V5.7 SP2
开启调试模式,报告所有错误(error_reporting(E_ALL);)
图:
报错
原码
改后