爲了減小垃圾數據(操做失誤的圖片),在ueditor上傳圖片時,先存儲在指定臨時文件夾,當數據提交到服務器時再將ueditor內容中的圖片逐一保存到指定的圖片文件夾php
1.找到./php/config.json,修改成本身指定的路徑,正則表達式
/*"imagePathFormat": "/Public/ueditor/php/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上傳保存路徑,能夠自定義保存路徑和文件名格式 */ "imagePathFormat": "/temp/upload/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上傳保存路徑,能夠自定義保存路徑和文件名格式 */
2.當ueditor內容提交到對應方法時json
$str = $this->input->post('editorValue'); if ( strstr($str, '<img')){ $match = imgSelect($str); $newstr = str_replace('/temp/upload/'.date('Ymd'),$data['config']['image_url'].'bbs/'.date('Ym'),$str); }else{ $newstr = $str; }
imgSelect (),這個是自定義匹配圖片路徑的正則表達式數組
$newmatch = imgSelect ($newstr); foreach ($newmatch[1] as $newmatkey => $newmatval){ foreach ($match[1] as $matkey => $matval){ if(substr($newmatval,strpos($newmatval,date('Ym').'/')+7) == substr($matval,strpos($matval,date('Ymd').'/')+9)) { $newmatval = substr($newmatval, strpos($newmatval, '.com/') + 4); $data_file = file_get_contents(str_replace('//t', '/t', $data['config']['base_url'] . $matval)); file_put_contents('..' . $newmatval, $data_file); } } }
自定義 imgSelect ()服務器
/*************** * @function img標籤過濾 * @Param: $str :傳入參數 *@Return: $match :數組 * 提示: ***************/ function imgSelect ($str){ $pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]?>/"; preg_match_all($pattern,$str,$match); return $match; }