Typecho Markdown内图片正则引发的思考

👨‍💻罗格 💠计算机服务器操作指南 ⏰6年前 (2018-02-07) 👁️9776 Views 💬5 comments
!本文可能 超过2年没有更新,今后内容也许不会被维护或者支持,部分内容可能具有时效性,涉及技术细节或者软件使用方面,本文不保证相应的技术更新和实践可操作性。

污句子网站 你好污啊 上线以后,我几乎每天都会去做一波推广,空余时间又折腾了一个专注于韩国电影的网站,为了方便后期挂广告并将页面PV升高,在中间做了点小技巧,把视频播放和下载页面单独拎出来放在了独立页面里,这样后期广告维护起来也就简单很多了。遇到的问题是提取Typecho的编辑器Markdown中的图片,但是问题来了,平时我们可以将正则函数直接写在function.php里,前端调用function.php的时候,Markdown内容已经被解析成了Html格式,如果用户直接从数据库中取出来数据再去用function中的正则函数就无法匹配出文章内容中的图片,所以解决办法就是直接在Markdown内容中使用正则语句。

要加删除线的内容

测试拼音拼音 (pin yin)

==要高亮显示的内容==

下面我们来看看原生Markdown和Html中正则语句的区别:

$pattern = '/\<img.*?src\=\"(.*?)\"[^>]*>/i';  //正则Html中的img标签中的图片地址
$patternMD = '/\!\[.*?\]\((http(s)?:\/\/.*?(jpg|png))/i'; //正则内联Markdown内容中的图片地址
$patternMDfoot = '/\[.*?\]:\s*(http(s)?:\/\/.*?(jpg|png))/i'; //正则脚部/脚注式Markdown内容中的图片地址

其中第一条正则就不用我解释了,大家经常在function.php函数中能见得到,第二句正则语句是内联Markdown内容中的图片地址,这个怎么理解呢,如果没接触过的小伙伴一定很纠结这句和第三句脚部式正则有什么区别?来让我给大家解释一下:

Markdown内联式图片编写方式为:

这是一段很长的内容,我是一张图片
我要换行
我要换行
![我是图片描述](https://www.moidea.info/upload/images/1.jpg),内容继续,下面还有很多内容。
我要换行
我要换行

Markdown脚部式图片编写方式为:

这是一段很长的内容,我是一张图片![我是图片描述][3] ,内容继续,下面还有很多内容。
我要换行
我要换行
我要换行
我要换行
[1]: https://www.moidea.info/upload/images/1.jpg

经过上面的对比大家应该能理解Markdown内联和脚注式的图片调用了,其实内联和脚注最大的区别就是图片资源网址和图片描述的位置

特别优惠:免费赠送 $50 Vultr主机-限时优惠!Adsense英文站必备海外服务器!点击了解更多

关注公众号:多思多金,学习更多技巧
喜欢我们吗? 订阅我的博客更新,让你不错过任何帖子。订阅后可以免费获得我正在写的2019年网络赚钱新思路电子书,了解2019年为您的网站带来流量最有效方法

100%的隐私,我和你一样讨厌垃圾邮件!

  • 本文编辑:罗格
  • 本文链接:https://www.moidea.info/archives/456.html
  • 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处!
  • 客官,说两句吧!

    已有 5 条评论

    1. 林洋洋

      广告真的无处不在啊,哈哈哈

      1. 程志辉

        @林洋洋 抓到洋洋一只,确实是前辈哇~[这两天写主题正好要用这个,正则实在不会写……

    2. 泽泽

      这个评论框莫名眼熟哈哈哈哈

      1. 罗格
        罗格 管理员 收录情况
        回复

        @泽泽 哈哈哈,让你发现了,就是从你那里抄来的

    3. zhangyw

      广告太多了