thinkphp批量更新替換某個表中的鏈接
發布時間:2024-03-19
|
浏覽次數:2146次
描述
采用的思路(lù)是首先批量循環表得(de)到數組,然後去(qù)循環數組,在循環的每一項當中使用str_replace替換得(de)到新的鏈接,然後再去(qù)更新
詳情
在實際的開發業務中經常會遇到需要更新舊的鏈接,比如(rú)存儲的圖片舊的鏈接失效,我們遷移到新的之後就(jiù)需要替換成新的鏈接。亦或是将存儲的遠(yuǎn)程圖片的http鏈接改換成https。以下代碼封裝,可(kě)以直接輸入表名和字段名進行替換,可(kě)以根據自(zì)己的業務進行調整
public function table ($table_name,$field) { $list = Db::name($table_name) ->field('id,'.$field) ->select(); foreach ($list as $k => $v) { $host = str_replace('https://', 'http://', $v[$field]); Db::name($table_name) ->where('id',$v['id']) ->update([ $field => $host ]); } }