從網站A資料庫中讀取的新聞內容(HTML源碼格式)寫入網站B的新聞表中,格式不統一,而且有很多冗餘代碼,很多是從office複製過去的,需要過濾掉網站A新聞內容中冗餘的HTML代碼。新聞內容在php的$NEWS欄位中,給這個欄位用Regex處理一下。
比如
一級標題粗體1
新聞內容
一級標題粗體2
這段文字為置中
這段文字為靠右對齊
這段文字是斜體
加一個連結
要處理成
一級標題粗體
新聞內容
第二段新聞本文
一級標題粗體2
這段文字為置中
這段文字為靠右對齊
這段文字為斜體
加一個連結
具體的代碼說明寫了個網頁,方便大神看: http://www.sunmuu.com/help/editorHelp.html
後面是php串連查詢的代碼,方便測試,資料庫mysql,表是editor,兩個欄位ID(INIT)和news(MEDIUMTEXT):
$mysql_db_hostname = "localhost";$mysql_db_user = "root";$mysql_db_password = "root";$mysql_db_database = "test";$con = mysqli_connect($mysql_db_hostname, $mysql_db_user, $mysql_db_password, $mysql_db_database);mysqli_query($con, "SET NAMES utf8");$sql="SELECT * FROM editor";$re=mysqli_query($con,$sql)or die("讀取資料出錯". mysqli_error());while($row=mysqli_fetch_array($re)){$str=$row["news"];echo $str;}
回複討論(解決方案)
//去掉不允許的 tag$s = strip_tags($s,',,,,');//去掉tag 裡面的屬性$s = preg_replace('/<(p|strong|em)[^>]+?>/i','<$1>',$s);//img 和 a 單獨處理$s = preg_replace('/<(a|img).+?(href|src)="([^"]+?)"[^>]*?>/i','<$1 $2="$3">',$s);echo $s;
試試吧,其它不影響顯示的你就自己去改吧
//去掉不允許的 tag$s = strip_tags($s,',,,,');//去掉tag 裡面的屬性$s = preg_replace('/<(p|strong|em)[^>]+?>/i','<$1>',$s);//img 和 a 單獨處理$s = preg_replace('/<(a|img).+?(href|src)="([^"]+?)"[^>]*?>/i','<$1 $2="$3">',$s);echo $s;
試試吧,其它不影響顯示的你就自己去改吧
太感謝你了jam00!!
有一點,p標籤裡面的style align屬性需要保留,style="text-align: center;"和style="text-align: left;",這個邏輯順序是怎樣的?可以給個提示嗎?
//去掉不允許的 tag$s = strip_tags($s,',,,,');//去掉tag 裡面的屬性$s = preg_replace('/<(strong|em)[^>]+?>/i','<$1>',$s);//img 和 a 單獨處理$s = preg_replace('/<(a|img).+?(href|src)="([^"]+?)"[^>]*?>/i','<$1 $2="$3">',$s);//單獨處理 p$s = preg_replace('//i','
',$s);echo $s;
//去掉不允許的 tag$s = strip_tags($s,',,,,');//去掉tag 裡面的屬性$s = preg_replace('/<(strong|em)[^>]+?>/i','<$1>',$s);//img 和 a 單獨處理$s = preg_replace('/<(a|img).+?(href|src)="([^"]+?)"[^>]*?>/i','<$1 $2="$3">',$s);//單獨處理 p$s = preg_replace('//i','
',$s);echo $s;
很給力,謝謝!