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

最新版的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/给路径的斜杠加了一个转义符,这就造成我们在后台批量替换附件路径的时候,这个地址无法被替换的原因!所以我们在批量替换的时候,可以这样:


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

希望对大家有所帮助

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

本文关键词:

联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com