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


Posted in PHP onJuly 08, 2015

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

<?php
//---------------------------------------
// Html 标记WAP语言
//----------------------------------------
function html2wml($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;
}
function text2wml($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程序设计有所帮助。

PHP 相关文章推荐
php下实现折线图效果的代码
Apr 28 PHP
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解
Jun 20 PHP
纯PHP生成的一个树叶图片画图例子
Apr 16 PHP
php实现批量压缩图片文件大小的脚本
Jul 04 PHP
初识Laravel
Oct 30 PHP
php画图实例
Nov 05 PHP
PHP实现通用alert函数的方法
Mar 11 PHP
PHP模板引擎Smarty内建函数section,sectionelse用法详解
Apr 11 PHP
Yii实现显示静态页的方法
Apr 25 PHP
IIS 7.5 asp Session超时时间设置方法
Apr 17 PHP
PHP抽象类基本用法示例
Dec 28 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
Jan 07 PHP
php实现数组中索引关联数据转换成json对象的方法
Jul 08 #PHP
PHP使用pear自带的mail类库发邮件的方法
Jul 08 #PHP
php获取从百度、谷歌等搜索引擎进入网站关键词的方法
Jul 08 #PHP
PHP实现多文件上传的方法
Jul 08 #PHP
PHP实现图片自动清理的方法
Jul 08 #PHP
php-redis中的sort排序函数总结
Jul 08 #PHP
PHP通过串口实现发送短信
Jul 08 #PHP
You might like
一款简单实用的php操作mysql数据库类
2014/12/08 PHP
ThinkPHP3.2.1图片验证码实现方法
2016/08/19 PHP
PHP实现笛卡尔积算法的实例讲解
2019/12/22 PHP
如何在PHP中生成随机数
2020/06/04 PHP
Javascript 类与静态类的实现(续)
2010/04/02 Javascript
js控制表单不能输入空格的小例子
2013/11/20 Javascript
jQuery实现仿QQ在线客服效果的滚动层代码
2015/10/15 Javascript
Vue结合原生js实现自定义组件自动生成示例
2017/01/21 Javascript
JS实现页面打印功能
2017/03/16 Javascript
JQuery form表单提交前验证单选框是否选中、删除记录时验证经验总结(整理)
2017/06/09 jQuery
JavaScript随机数的组合问题案例分析
2020/05/16 Javascript
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
2020/12/10 Javascript
让python的Cookie.py模块支持冒号做key的方法
2010/12/28 Python
Python实现的数据结构与算法之双端队列详解
2015/04/22 Python
Python设计模式编程中解释器模式的简单程序示例分享
2016/03/02 Python
Python的Django框架中forms表单类的使用方法详解
2016/06/21 Python
python实现求最长回文子串长度
2018/01/22 Python
python实现扫描日志关键字的示例
2018/04/28 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
2018/06/13 Python
Python爬虫——爬取豆瓣电影Top250代码实例
2019/04/17 Python
Python-while 计算100以内奇数和的方法
2019/06/11 Python
Python实现图片裁剪的两种方式(Pillow和OpenCV)
2019/10/30 Python
Keras之自定义损失(loss)函数用法说明
2020/06/10 Python
Python中Selenium模块的使用详解
2020/10/09 Python
Python3中对json格式数据的分析处理
2021/01/28 Python
你所在的项目是如何确定版本号的
2015/12/28 面试题
监理资料员岗位职责
2014/01/03 职场文书
大学生违纪检讨书300字
2014/10/25 职场文书
碧霞祠导游词
2015/02/09 职场文书
销售区域经理岗位职责
2015/04/10 职场文书
农民工工资保障承诺书
2015/05/04 职场文书
社区禁毒宣传活动总结
2015/05/07 职场文书
干部理论学习心得体会
2016/01/21 职场文书
《我的伯父鲁迅先生》教学反思
2016/02/16 职场文书
旅游安全责任协议书
2016/03/22 职场文书
python基础之停用词过滤详解
2021/04/21 Python