preg_replace用法很簡單,我們只需要這樣執行即可
preg_replace('正則表達式 匹配要替換的內容','替換成的內容','需要處理的原數據')
直接上代碼
//設置程序超時 set_time_limit(0); //從數據庫中讀取第一條要處理的ID,其中ed是為了標識是否已經處理而臨時添加的字段 $id=M('Main')->where('ed=0')->order('id asc')->getField('id'); while($id){ //讀取要處理的數據 $d=M('Main')->field('id,cont')->find($id); $cont=$d['cont']; //正則替換數字,電話,空格等為空 $cont=preg_replace('/\d{6,13}|\d{3}-\d{4}-\d{4}|\d{3,4}-\d{7,8}|\s+| /','',$cont); //正則替換網址為空 //形如htTp://www.kredytypozyczki.net/thinkphp/blog-1048.html等內容,含https,?#%等參數,但無法替換形如www.kredytypozyczki.net,zhidao.baidu.com等形式 $cont=preg_replace('`([hH][tT]{2}[pP]://|[hH][tT]{2}[pP][sS]://|[[wW]{3}.|[wW][aA][pP].|[fF][tT][pP].|[fF][iI][lL][eE].])[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]`','',$cont); //因為不知道怎么改(本人老菜一只)再次替換不含http的網址 $cont=preg_replace('`[\w{1,255}].[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]`','',$cont); //更新保存數據 $d['cont']=$cont; $d['ed']=1; M('Main')->save($d); //讀取下一條需要處理的數據id,因為ed默認為0,這里只是讀id大于當前id的一條 $id=M('Main')->where('id>'.$id)->order('id asc')->getField('id'); }
附:索引編號etc
`\(.*?\)|(.*?)|①|②|③|④|⑤bai|⑥|⑦|⑧|⑨|⑩|⑴|⑵|⑶|⑷|⑸|⑹|⑺|⑻|⑼|⑽|⑾|⑿|⒀|⒁|⒂|⒃|⒄|⒅|⒆|⒇|⒈|⒉|⒊|⒋|⒌|⒍|⒎|⒏|⒐|⒑|⒒|⒓|⒔|⒕|⒖|⒗|⒘|⒙|⒚|⒛|Ⅰ|Ⅱ|Ⅲ|Ⅳ|Ⅴ|Ⅵ|Ⅶ|Ⅷ|Ⅸ|Ⅹ|◆|◇|●|★|☆|Ⅺ|Ⅻ|ⅰ|ⅱ|ⅲ|ⅳ|ⅴ|ⅵ|ⅶ|ⅷ|ⅸ|ⅹ|㈠|㈡|㈢|㈣|㈤|㈥|㈦|㈧|㈨|㈩|\[.*?\]|^.{0,9}?、|^.{0,9}?,|&.*?;|^.{0,9}?,|^.{0,9}.|^.{0,9}?\.|^.{0,9}?:|^.{0,9}?:| |\s+`
© 致遠 2020-10-29,原創內容,轉載請注明出錯:preg_repace正則替換采集文章中的電話、網址等內容