PageCookery微博日志里的链接调回时未过滤反斜杠解决办法

老杨选择了PageCookery微博程序来搭建个人微博,由于 PageCookery 没有技术交流平台,对于程序中出现的问题,也无法与作者交流,只好自己读代码、操刀解决,也算“自己动手、丰衣足食”吧!

继上次利用OAuth将微博日志同步到新浪、腾讯、网易、搜狐、豆瓣等SNS微博后,昨天无意发现微博日志在调回页面时,如果内容里包含链接,则会显示如下图:

查看源代码,发现前台链接显示:

<a title="\"七喜饮料最新创意广告-史上最爽的7件事"\" href="\"https://yangjunwei.com/603.html\"">七喜饮料最新创意广告-史上最爽的7件事</a>

数据库存储该字段为:

<a title=\"七喜饮料最新创意广告-史上最爽的7件事\" href=\"https://yangjunwei.com/603.html\">七喜饮料最新创意广告-史上最爽的7件事</a>

比对发现前台在发布微博的时候,调用了 addslashes() 函数来添加反斜杠,但输出的时候未对反斜杠进行相应的过滤,所以造成了上面的郁闷无效链接!!!

找到问题了,解决方法参考前文:《PHP关于反斜杠处理函数addslashes()和stripslashes()的用法》。

打开 lib/class_format.php 文件查找 ParseBBCode($text) 函数中的以下代码段:

$text = preg_replace($p, $r, $text);

在上述代码段前添加如下代码:

  //去除斜杠
   $text = stripslashes($text);

再去刷新页面吧,郁闷的无效链接应该已经消失了!!

PS. 强烈建议 PageCookery 在网站上挂出交流论坛或群之类的,好的开源程序,值得大家去交流的!

诺豆微博暂时的网址:https://yangjunwei.com/t,已同步到各大微博SNS,欢迎互听!!