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 模拟登陆MSN并获得用户信息
May 16 PHP
PHP插入排序实现代码
Apr 04 PHP
浅析PHP 按位与或 (^ 、&amp;)
Jun 21 PHP
destoon实现调用自增数字从1开始的方法
Aug 21 PHP
php采用file_get_contents代替使用curl实例
Nov 07 PHP
php获取指定范围内最接近数的方法
Jun 02 PHP
php获取错误信息的方法
Jul 17 PHP
php网页版聊天软件实现代码
Aug 12 PHP
PHP中利用sleep函数实现定时执行功能实现代码
Aug 25 PHP
PHP实现腾讯与百度坐标转换
Aug 05 PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
Mar 04 PHP
浅谈如何提高PHP代码质量之单元测试
May 28 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实现下载功能的代码
2012/09/29 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
定义php常量的详解
2013/06/09 PHP
详解PHP如何更好的利用PHPstorm的自动提示
2017/08/18 PHP
CI框架简单分页类用法示例
2020/06/06 PHP
js对table的td进行相同内容合并示例详解
2013/12/27 Javascript
javascript读取Xml文件做一个二级联动菜单示例
2014/03/17 Javascript
jquery无法设置checkbox选中即没有变成选中状态
2014/03/27 Javascript
jQuery遍历之next()、nextAll()方法使用实例
2014/11/08 Javascript
jquery插件Jplayer使用方法简析
2016/04/22 Javascript
jQuery动态产生select option下拉列表
2017/03/15 Javascript
JS库之Three.js 简易入门教程(详解之一)
2017/09/13 Javascript
zTree 树插件实现全国五级地区点击后加载的示例
2018/02/05 Javascript
vue的toast弹窗组件实例详解
2018/05/14 Javascript
python 递归遍历文件夹,并打印满足条件的文件路径实例
2017/08/30 Python
python实现基于SVM手写数字识别功能
2020/05/27 Python
Numpy array数据的增、删、改、查实例
2018/06/04 Python
使用CodeMirror实现Python3在线编辑器的示例代码
2019/01/14 Python
python如何获取列表中每个元素的下标位置
2019/07/01 Python
利用python实现.dcm格式图像转为.jpg格式
2020/01/13 Python
Python连接Oracle之环境配置、实例代码及报错解决方法详解
2020/02/11 Python
Keras实现将两个模型连接到一起
2020/05/23 Python
如何使用python记录室友的抖音在线时间
2020/06/29 Python
CSS3 background-image颜色渐变的实现代码
2018/09/13 HTML / CSS
函数只定义了一次, 调用了一次, 但编译器提示非法重定义了-什么问题?
2014/10/03 面试题
WebSphere面试题:在WebSphere里面如何部署一个应用
2015/08/02 面试题
保洁主管岗位职责
2013/11/20 职场文书
正规的求职信范文分享
2013/12/11 职场文书
五年级英语教学反思
2014/01/31 职场文书
班子成员四风问题自我剖析材料
2014/09/29 职场文书
宾馆卫生管理制度
2015/08/06 职场文书
2016五一劳动节慰问信
2015/11/30 职场文书
2020年元旦晚会策划书模板
2019/12/30 职场文书
详细介绍python类及类的用法
2021/05/31 Python
MongoDB数据库之添删改查
2022/04/26 MongoDB
openEuler 搭建java开发环境的详细过程
2022/06/10 Servers