国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

PHP去掉從word直接粘貼過來的沒有用格式的函數

2024-05-04 23:13:23
字體:
來源:轉載
供稿:網友
一般處理的方式有二種:1.通過編輯器的JS直接去除。2.提交到后臺后,直接用程序去掉無效標簽。下面我就分享一個通過PHP的處理方式,成功率可能不是100%。這程序也是在PHP官網上看到的,就順便粘貼過來了。

復制代碼 代碼如下:


function ClearHtml($content,$allowtags='') {

mb_regex_encoding('UTF-8');
//replace MS special characters first
$search = array('/‘/u', '/’/u', '/“/u', '/”/u', '/—/u');
$replace = array('/'', '/'', '"', '"', '-');
$content = preg_replace($search, $replace, $content);
//make sure _all_ html entities are converted to the plain ascii equivalents - it appears
//in some MS headers, some html entities are encoded and some aren't
$content = html_entity_decode($content, ENT_QUOTES, 'UTF-8');
//try to strip out any C style comments first, since these, embedded in html comments, seem to
//prevent strip_tags from removing html comments (MS Word introduced combination)
if(mb_stripos($content, '/*') !== FALSE){
$content = mb_eregi_replace('#//*.*?/*/#s', '', $content, 'm');
}
//introduce a space into any arithmetic expressions that could be caught by strip_tags so that they won't be
//'<1' becomes '< 1'(note: somewhat application specific)
$content = preg_replace(array('/<([0-9]+)/'), array('< $1'), $content);

$content = strip_tags($content, $allowtags);
//eliminate extraneous whitespace from start and end of line, or anywhere there are two or more spaces, convert it to one
$content = preg_replace(array('/^/s/s+/', '//s/s+$/', '//s/s+/u'), array('', '', ' '), $content);
//strip out inline css and simplify style tags
$search = array('#<(strong|b)[^>]*>(.*?)</(strong|b)>#isu', '#<(em|i)[^>]*>(.*?)</(em|i)>#isu', '#<u[^>]*>(.*?)</u>#isu');
$replace = array('<b>$2</b>', '<i>$2</i>', '<u>$1</u>');
$content = preg_replace($search, $replace, $content);

//on some of the ?newer MS Word exports, where you get conditionals of the form 'if gte mso 9', etc., it appears
//that whatever is in one of the html comments prevents strip_tags from eradicating the html comment that contains
//some MS Style Definitions - this last bit gets rid of any leftover comments */
$num_matches = preg_match_all("http://<!--/u", $content, $matches);
if($num_matches){
$content = preg_replace('//<!--(.)*--/>/isu', '', $content);
}
return $content;
}


測試使用結果:

復制代碼 代碼如下:


<?php
$content = ' <!--[if gte mso 9]><xml><w:WordDocument><w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel><w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery><w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery><w:DocumentKind>DocumentNotSpecified</w:DocumentKind><w:DrawingGridVerticalSpacing>7.8</w:DrawingGridVerticalSpacing><w:View>Normal</w:View><w:Compatibility></w:Compatibility><w:Zoom>0</w:Zoom></w:WordDocument></xml><![endif]-->
<p><spanyes"; font-size: 12.0000pt; font-family: "宋體";">《優伴戶外旅行》——讓旅行成為習慣!</span></p>越發忙碌的你,是否想給自己放個假?專注工作的你,是否還記得上一次鍛煉是什么時候?優伴戶外旅行,給你不一樣的旅行體驗:給心自由,便處處都是風景!</span></p>';
echo ClearHtml($content,'<p>');

/*
得到的結果:
<p >《優伴戶外旅行》--讓旅行成為習慣!</p>越發忙碌的你,是否想給自己放個假?專注工作的你,是否還記得上一次鍛煉是什么時候?優伴戶外旅行,給你不一樣的旅行體驗:給心自由,便處處都是風景!</p>
*/
?>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 屏东市| 伊吾县| 容城县| 达拉特旗| 青冈县| 日照市| 永仁县| 大英县| 景德镇市| 武川县| 洱源县| 江华| 乐安县| 武胜县| 高淳县| 罗定市| 忻州市| 德兴市| 突泉县| 万安县| 兴山县| 桑植县| 大石桥市| 兰溪市| 苍南县| 泽州县| 鲁甸县| 江油市| 古田县| 宜春市| 营口市| 五台县| 清丰县| 旅游| 诏安县| 晋宁县| 织金县| 米泉市| 马关县| 肥东县| 康乐县|