我一直在構建一個標題文本中的函數讀取,如在<title></title>
標記之間的網頁上發現的。我使用下面的正則表達式代碼獲取標題文本形式的html頁面:用php和正則表達式從網頁上刮取的清理文本
if(preg_match('#<title>([^<]+)</title>#simU', $this->html, $m1))
$this->title = trim($m1[1]);
我使用下面的編碼爲MySQL INSERT語句值:
mysql_real_escape_string(rawurldecode($this->title))
讓我留下一個完整的有HTML實體標題(&收縮壓等)和 外國字符,如 Dating S.o.s | Gluten-free, Dairy-free, Sugar-free Recipes And Lifestyle Tips
的目標是解碼,取出,用的標題是他們看起來更接近PE的數據庫儘可能使用英語。
我已經構建了一個函數,使用以下2個正則表達式來分別去除html實體和限制垃圾。雖然不理想(因爲它刪除了html實體而不是保留它們),但它是最接近我清理乾淨的。
$string = preg_replace("/&#?[a-z0-9]+;/i","",$string);
//remove all non-normal chars
$string = preg_replace('/[^a-zA-Z0-9-\s\'\!\,\|\(\)\.\*\&\#\/\:]/', '', $string);
但非英文字符仍然存在。
會有人能夠提供幫助爲:
- 最佳的方式來保存這些標題字符串到數據庫嘗試保持英語意圖(標點符號,apostrophies等)
- 如何轉換或消除奇怪的字符,如我在上面的示例標題中所示?
非常感謝您的幫助!
請使用下面的鏈接,它會讓你的生活變得更容易http://stackoverflow.com/questions/3577641/best-方法解析-html – RobertPitt 2011-02-11 19:44:05