只做利于SEO的网站,提供网站建设、SEO、网站代运营等服务。服务中心 | 建站流程 | 网站地图

PHP为图片增加class,处理空格

2020-11-13小猴建站 阅读()相关主题:PHP

WEB前端会使用swiper便捷制作出轮播、翻页等常见特效,降低开发成本。DedeCMS上手快,因此多数个人建站或工作室建站会采用Swiper+DedeCMS的组合方式,分别作为前端及后端。有人觉得DedeCMS漏洞多,只要做好必要的修改、设置,应付一般的攻击还是没问题的。

基于PHP的DedeCMS很多时候可以自己写一些小功能,十分方便,特别是对一些自定义字段的处理还是十分便捷的。又因Swiper需要精准控制某个div,就需要指定的ID或者class,这就需要在模板里的自定义字段写function。

<div class="swiper-wrapper">
 <img class="swiper-container" src="1.jpg" alt="">
 <img class="swiper-container" src="2.jpg" alt="">
 <img class="swiper-container" src="3.jpg" alt="">
</div>

这里用的是默认的编辑区字段{dede:field.body/},其他自定义字段方法一样,在编辑区点击图片上传后,图片是没有class属性的,常用的是php的str_replace,写法如果是

{dede:field.body function=str_replace("<img","<img class='swiper-container'",@me)/}

是无法成功修改的,因为php在处理空格的时候比较特殊,另外单引号和双引号也是需要注意的,先贴出正确写法:

{dede:field.body function=str_replace("<img","<img".chr(32)."class=\"swiper-container\"",@me)/}

chr()函数:从指定的ASCII值返回字符,空格对应的ASCII码就是32。

\" 是转义字符,输出的就是双引号,PHP中其他常见转义字符有

\n                 --> 换行
\r                 --> 回车
\t                 --> 水平制表符(相当于tab键)
\\                 --> 反斜杠
\$                 --> 美元符号
\'                 --> 单引号
\"                 --> 双引号
\[0-7]{1,3}        --> 正则表达式匹配一个八进制符号表示的字符
\x[0-9A-Fa-f]{1,2} --> 正则表达式匹配一个十六进制符号表示的字符

单引号是准确地打印你输入的内容,除了转义的单引号(\')和转义的反斜杠(\\)之外,它们将分别被打印为一个单引号和一个反斜杠。