我想达到的效果是,摘取文章的前200字,如果200字内有图片的话,也显示图片。
网上有方法是用$this->excerpt()替换$this->content('....'),但是这种方法只能摘取文字,而不能摘取图片。
我尝试 <?php mb_substr($this->content(), 0, 100, 'utf-8');>但是显示的结果跟$this->content('....')完全一样,难道环境不支持mb_substr,但是也没有报错呢?
如果想和我的博客一样,itoow.com,那就很简单,后台设置首页显示一篇文章,模板index只调用图片就行了,我的图片是用的外链图床的,所以首页调用是自定义字段来实现
首先你的代码是错误的。$this->content()
其实就是打印内容,并且函数是没有输出的,所以实际上你的mb_substr
函数压根就没法执行,当然和$this->content('...')
是一样了,实际上你这里应该用$this->content
才行,这个才是保存文章内容的变量。如果要实现你的思路的话可按照以下思路编写代码:
- 正则匹配文章内所有的IMG标签并用
[图]
替换(也可以是别的),并根据顺序把标签原始内容存储在数组内。 - 用
strip_tags
过滤掉其他无关标签之后用strim_width
取前200个字。 - 查找这200个字内是否有
[图]
并按照匹配顺序从原始内容数组中读取IMG标签并替换回去。