php将html转成wml的WAP标记语言实例
本文实例讲述了php将html转成wml的WAP标记语言的方法。分享给大家供大家参考。具体实现方法如下:
<?php //--------------------------------------- //Html标记WAP语言 //---------------------------------------- functionhtml2wml($content) { //保留图片 preg_match_all("/<img([^>]*)>/isU",$content,$imgarr); if(isset($imgarr[0])&&count($imgarr[0])>0) { foreach($imgarr[0]as$k=>$v)$content=str_replace($v,"WAP-IMG::{$k}",$content); } //过滤掉样式表和脚本 $content=preg_replace("/<style.*?<\\/style>/is","",$content); $content=preg_replace("/<script.*?<\\/script>/is","",$content); //首先将各种可以引起换行的标签(如<br/>、<p>之类)替换成换行符"\\n" $content=preg_replace("/<br\\s*\\/?\\/>/i","\\n",$content); $content=preg_replace("/<\\/?p>/i","\\n",$content); $content=preg_replace("/<\\/?td>/i","\\n",$content); $content=preg_replace("/<\\/?div>/i","\\n",$content); $content=preg_replace("/<\\/?blockquote>/i","\\n",$content); $content=preg_replace("/<\\/?li>/i","\\n",$content); //将" "替换为空格 $content=preg_replace("/\\ \\;/i","",$content); $content=preg_replace("/\\ /i","",$content); //过滤掉剩下的HTML标签 $content=strip_tags($content); //将HTML中的实体(entity)转化为它所对应的字符 $content=html_entity_decode($content,ENT_QUOTES,"GB2312"); //过滤掉不能转化的实体(entity) $content=preg_replace('/\\&\\#.*?\\;/i','',$content); //上面是将HTML网页内容转化为带换行的纯文本,下面是将这些纯文本转化为WML。 $content=str_replace('$','$$',$content); $content=str_replace("\\r\\n","\\n",htmlspecialchars($content)); $content=explode("\\n",$content); for($i=0;$i<count($content);$i++) { $content[$i]=trim($content[$i]); //如果去掉全角空格为空行,则设为空行,否则不对全角空格过滤。 if(str_replace('','',$content[$i])=='')$content[$i]=''; } $content=str_replace("<p><br/></p>\\n","",'<p>'.implode("<br/></p>\\n<p>",$content)."<br/></p>\\n"); //还原图片 if(isset($imgarr[0])&&count($imgarr[0])>0) { foreach($imgarr[0]as$k=>$v) { $attstr=(preg_match('#/$#',$imgarr[1][$k]))?'<img'.$imgarr[1][$k].'>':'<img'.$imgarr[1][$k].'/>'; $content=str_replace("WAP-IMG::{$k}",$attstr,$content); } } $content=preg_replace("/&[a-z]{3,10};/isU",'',$content); return$content; } functiontext2wml($content) { $content=str_replace('$','$$',$content); $content=str_replace("\\r\\n","\\n",htmlspecialchars($content)); $content=explode("\\n",$content); for($i=0;$i<count($content);$i++) { //过滤首尾空格 $content[$i]=trim($content[$i]); //如果去掉全角空格为空行,则设为空行,否则不对全角空格过滤。 if(str_replace("","",$content[$i])=="")$content[$i]=""; } //合并各行,转化为WML,并过滤掉空行 $content=str_replace("<p><br/></p>\\n","","<p>".implode("<br/></p>\\n<p>",$content)."<br/></p>\\n"); return$content; } ?>
希望本文所述对大家的php程序设计有所帮助。