各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案

Str Tom,为分享PHP技术和解决方案,贡献一份自己的力量!
QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > CMS教程 > phpcms

解决phpcms V9.6后台无法替换附件路径的bug

管理员 2022-08-28
phpcms
251
最新版的phpcms v9.6,经常使用组图的同学,后台会发现无法批量替换路径了!有时候我们做网站,通常都是需要本地添加组图等附件,v9.6之前的版本都可以随心所欲的替换,但是v9.6之后不行了!



下面就来说说不能替换的原因!

通过研究v9.6之前的数据库得知:(主要是组图,其他方式的图片路径还是原来的)
pictureuls在数据库中的存储为:
  1. array ( 
  2.   0 =>  
  3.   array ( 
  4.     'url' => 'http://localhost/pweb123/uploadfile/2014/1011/20141011102245317.jpg'
  5.     'alt' => '001'
  6.   ), 
  7.   1 =>  
  8.   array ( 
  9.     'url' => 'http://localhost/pweb123/uploadfile/2014/1011/20141011102245537.jpg'
  10.     'alt' => '002'
  11.   ), 
  12.   2 =>  
  13.   array ( 
  14.     'url' => 'http://localhost/pweb123/uploadfile/2014/1011/20141011102245244.jpg'
  15.     'alt' => '003'
  16.   ), 
(其中pweb123为我本地的文件目录,即本地根目录下的一个目录!)

这样你会发现,之前的之前可以直接通过后台批量匹配http://localhost/pweb123/uploadfile/替换成http://www.aaaaa.com/uploadfile,这样很容易就完成了替换,但是研究9.6之后的数据库 你会发现:
  1. "0":{"url":"http://localhost/pweb/uploadfile/2016/0720/20160720030017692.jpg","alt":"548aa843ae6bd"}, 
  2. "1":{"url":"http://localhost/pweb/uploadfile/2016/0720/20160720032805689.jpg","alt":"548aa843ae6bd"}, 
  3. "2":{"url":"http://localhost/pweb/uploadfile/2016/0720/20160720034313116.jpg","alt":"20160720034313826"

通过比较你会发现,9.6采用的存储方式为json方式,9.6之前是采用array数组方式,不但存储方式不同了,附件路径的方式也变了,变成了http://localhost/pweb/uploadfile/给路径的斜杠加了一个转义符,这就造成我们在后台批量替换附件路径的时候,这个地址无法被替换的原因!所以我们在批量替换的时候,可以这样:


这样就可以完全的替换了所有的路径

希望对大家有所帮助

本文建站之家原创,转载请保存链接!

希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 lecms, classcms, fastadmin, pbootcms, phpcms, eyoucms, yzmcms, PHP, xunruicms, jizhicms, dedecms, wordpress, hkcms, yzncms, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。

扫码关注

qrcode

QQ交谈

回顶部