Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Array.au3>
- ; $sText = FileRead(@ScriptDir & '\1.htm')
- $sText = FileRead(@ScriptDir & '\site.htm')
- $sText = _ClearHTML($sText)
- $hFile = FileOpen(@ScriptDir & '\2.htm', 2)
- FileWrite($hFile, $sText)
- FileClose($hFile)
- Func _ClearHTML($sText)
- Local $0, $DelAll, $DelTag, $i, $Rep, $teg, $Tr
- $Tr = 0
- $teg = 'p|div|span|html|body|b|table|td|tr|th|font|img|br'
- $sText=StringRegExpReplace($sText, '(?s)<!--.*?-->', '') ; удаление комментариев
- ; ============= блок colspan, rowspan
- $0 = Chr(0)
- $Rep = StringRegExp($sText, '(?s)(<[^<>]+?(?:colspan|rowspan)[^<>]+?>)', 3) ; в массив
- If Not @error Then
- $Tr = 1
- $sText = StringRegExpReplace($sText, '(?s)(<[^<>]+?(?:colspan|rowspan)[^<>]+?[^/]>)', $0) ; временная подмена
- EndIf
- $sText = StringRegExpReplace($sText, '(?s)(<(?:' & $teg & '))[\r\n]* [^<>]*?(>)', '\1\2') ; очистка
- If $Tr Then
- For $i = 0 To UBound($Rep) - 1
- $Rep[$i] = _Replace($Rep[$i])
- $sText = StringReplace($sText, $0, $Rep[$i], 1)
- Next
- EndIf
- ; =============
- $sText=StringReplace($sText, '<p><o:p> </o:p></p>', '<br><br>') ; замена переносов строк
- ; $sText=StringRegExpReplace($sText, '(?s)(<('&$teg&').*?>)(.*?)</\2>(\s*)\1', '\1\3\4') ; очистка дублирования
- $sText=StringRegExpReplace($sText, '(?s)<('&$teg&')[^<>]*?>[\x{A0}\s]*?</\1>', '') ; очистка тегов без контента
- $DelAll='xml|style|script'
- $sText=StringRegExpReplace($sText,'(?s)<('&$DelAll&')[^<>]*>(.*?)</\1>','') ; удаление с содержимым
- $DelTag='span'
- $sText=StringRegExpReplace($sText,'(?s)</?('&$DelTag&')[^<>]*>','') ; удаление самих тегов
- Return $sText
- EndFunc
- Func _Replace($Rep)
- $teg = 'table|td|tr|th'
- $aRep=StringRegExp($Rep, '((?:colspan|rowspan)\h*=\h*"?\d+"?)', 3)
- $Rep = StringRegExpReplace($Rep, '(?s)(<(?:' & $teg & ')) .*?(>)', '\1') ; очистка
- For $i = 0 To UBound($aRep)-1
- $Rep &= ' ' & $aRep[$i]
- Next
- $Rep &= '>'
- Return $Rep
- EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement