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 相关文章推荐
完美解决dedecms中的[html][/html]和[code][/code]问题
Mar 20 PHP
php中时间轴开发(刚刚、5分钟前、昨天10:23等)
Oct 03 PHP
php几个预定义变量$_SERVER用法小结
Nov 07 PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
Jan 20 PHP
php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
Jun 03 PHP
smarty内部日期函数html_select_date()用法实例分析
Jul 08 PHP
php将远程图片保存到本地服务器的实现代码
Aug 03 PHP
dvwa+xampp搭建显示乱码的问题及解决方案
Aug 23 PHP
详解WordPress中调用评论模板和循环输出评论的PHP函数
Jan 05 PHP
PHP使用mysql与mysqli连接Mysql数据库用法示例
Jul 07 PHP
php微信公众号开发之现金红包
Apr 16 PHP
PHP 对象继承原理与简单用法示例
Apr 21 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 json_decode函数详细解析
2014/02/17 PHP
Chrome Web App开发小结
2014/09/04 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
2014/11/19 PHP
PHP+MySQL实现在线测试答题实例
2020/01/02 PHP
基于jquery的模态div层弹出效果
2010/08/21 Javascript
js和jquery中循环的退出和继续下一个循环
2014/09/03 Javascript
JavaScript实现网页截图功能
2014/10/16 Javascript
JavaScript实现常用二级省市级联下拉列表的方法
2015/03/25 Javascript
Web开发必知Javascript技巧大全
2016/02/23 Javascript
详解Javascript继承的实现
2016/03/25 Javascript
javascript 面向对象function详解及实例代码
2017/02/28 Javascript
javascript数组去重常用方法实例分析
2017/04/11 Javascript
Vue中img的src属性绑定与static文件夹实例
2017/05/18 Javascript
JS实现微信里判断页面是否被分享成功的方法
2017/06/06 Javascript
js 概率计算(简单版)
2017/09/12 Javascript
JavaScript高阶教程之“==”隐藏下的类型转换
2019/04/11 Javascript
小程序自定义弹框效果
2020/11/16 Javascript
python使用BeautifulSoup分析网页信息的方法
2015/04/04 Python
在ironpython中利用装饰器执行SQL操作的例子
2015/05/02 Python
python按综合、销量排序抓取100页的淘宝商品列表信息
2018/02/24 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
2019/07/23 Python
python excel转换csv代码实例
2019/08/26 Python
pytorch中的卷积和池化计算方式详解
2020/01/03 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
2020/02/13 Python
使用sublime text3搭建Python编辑环境的实现
2021/01/12 Python
利用SVG和CSS3来实现一个炫酷的边框动画
2015/07/22 HTML / CSS
Under Armour美国官网:美国知名高端功能性运动品牌
2016/09/05 全球购物
Ref与out有什么不同
2012/11/24 面试题
JAVA中运算符的分类及举例
2015/09/12 面试题
乡镇机关党员民主评议表自我评价
2014/09/21 职场文书
2014学习十八届四中全会精神思想汇报范文
2014/10/23 职场文书
2015年个人思想总结
2015/03/09 职场文书
写给同事的离职感言
2015/08/04 职场文书
新郎父母婚礼答谢词
2015/09/29 职场文书
Vue中foreach数组与js中遍历数组的写法说明
2021/06/05 Vue.js
html输入两个数实现加减乘除功能
2021/07/01 HTML / CSS