当前位置:首页 > PHP教程 > php应用 > 列表

php将html转成wml的WAP标记语言实例

发布:smiling 来源: PHP粉丝网  添加日期:2021-06-09 10:53:03 浏览: 评论:0 

这篇文章主要介绍了php将html转成wml的WAP标记语言的方法,实例分析了php实现标签的转换与过滤的相关技巧,非常具有实用价值,需要的朋友可以参考下。

本文实例讲述了php将html转成wml的WAP标记语言的方法,分享给大家供大家参考,具体实现方法如下:

  1. <?php 
  2. //--------------------------------------- 
  3. // Html 标记WAP语言 
  4. //---------------------------------------- 
  5. function html2wml($content
  6.   //保留图片 
  7.   preg_match_all("/<img([^>]*)>/isU"$content$imgarr); 
  8.   if(isset($imgarr[0]) && count($imgarr[0])>0 ) 
  9.   { 
  10.    foreach($imgarr[0] as $k=>$v$content = str_replace($v"WAP-IMG::{$k}"$content); 
  11.   } 
  12.   // 过滤掉样式表和脚本 
  13.   $content = preg_replace("/<style .*?<\\/style>/is"""$content); 
  14.   $content = preg_replace("/<script .*?<\\/script>/is"""$content); 
  15.   // 首先将各种可以引起换行的标签(如<br />、<p> 之类)替换成换行符"\\n" 
  16.   $content = preg_replace("/<br \\s*\\/?\\/>/i""\\n"$content); 
  17.   $content = preg_replace("/<\\/?p>/i""\\n"$content); 
  18.   $content = preg_replace("/<\\/?td>/i""\\n"$content); 
  19.   $content = preg_replace("/<\\/?div>/i""\\n"$content); 
  20.   $content = preg_replace("/<\\/?blockquote>/i""\\n"$content); 
  21.   $content = preg_replace("/<\\/?li>/i""\\n"$content); 
  22.   // 将"&nbsp;"替换为空格 
  23.   $content = preg_replace("/\\&nbsp\\;/i"" "$content); 
  24.   $content = preg_replace("/\\&nbsp/i"" "$content); 
  25.   // 过滤掉剩下的 HTML 标签 
  26.   $content = strip_tags($content); 
  27.   // 将 HTML 中的实体(entity)转化为它所对应的字符 
  28.   $content = html_entity_decode($content, ENT_QUOTES, "GB2312"); 
  29.   // 过滤掉不能转化的实体(entity) 
  30.   $content = preg_replace('/\\&\\#.*?\\;/i'''$content); 
  31.   // 上面是将 HTML 网页内容转化为带换行的纯文本,下面是将这些纯文本转化为 WML。 
  32.   $content = str_replace('$''$$'$content); 
  33.   $content = str_replace("\\r\\n""\\n", htmlspecialchars($content)); 
  34.   $content = explode("\\n"$content); 
  35.   for ($i = 0; $i < count($content); $i++) 
  36.   { 
  37.   $content[$i] = trim($content[$i]); 
  38.   // 如果去掉全角空格为空行,则设为空行,否则不对全角空格过滤。 
  39.   if (str_replace(' '''$content[$i]) == ''$content[$i] = ''
  40.   } 
  41.   $content = str_replace("<p><br /></p>\\n"""'<p>'.implode("<br /></p>\\n<p>"$content)."<br /></p>\\n"); 
  42.   //还原图片 
  43.   if(isset($imgarr[0]) && count($imgarr[0])>0 ) 
  44.   { 
  45.     foreach($imgarr[0] as $k=>$v
  46.     { 
  47.      $attstr = (preg_match('#/$#'$imgarr[1][$k])) ? '<img '.$imgarr[1][$k].'>' : '<img '.$imgarr[1][$k].' />'
  48.      $content = str_replace("WAP-IMG::{$k}"$attstr$content); 
  49.     } 
  50.   } 
  51.   $content = preg_replace("/&amp;[a-z]{3,10};/isU"' '$content); 
  52.   return $content
  53. function text2wml($content
  54.   $content = str_replace('$''$$'$content); 
  55.   $content = str_replace("\\r\\n""\\n", htmlspecialchars($content)); 
  56.   $content = explode("\\n"$content); 
  57.   for ($i = 0; $i < count($content); $i++) 
  58.   { 
  59.   // 过滤首尾空格 
  60.   $content[$i] = trim($content[$i]); 
  61.   // 如果去掉全角空格为空行,则设为空行,否则不对全角空格过滤。 
  62.   if (str_replace(" """$content[$i]) == ""$content[$i] = ""
  63.   } 
  64.   //合并各行,转化为 WML,并过滤掉空行 
  65.   $content = str_replace("<p><br /></p>\\n""""<p>".implode("<br /></p>\\n<p>"$content)."<br /></p>\\n"); 
  66.   return $content
  67. ?>

Tags: html转成wml WAP标记语言

分享到: