首页 > 开发 > PHP > 正文

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

2024-05-04 23:37:30
字体:
来源:转载
供稿:网友

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

希望本文所述对大家的php程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表