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 文件扩展名 获取函数
Jun 03 PHP
php中通过curl smtp发送邮件
Jun 05 PHP
php生成图形验证码几种方法小结
Aug 15 PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
Mar 08 PHP
php字符串按照单词进行反转的方法
Mar 14 PHP
php结合mysql与mysqli扩展处理事务的方法
Jun 29 PHP
遍历echsop的region表形成缓存的程序实例代码
Nov 01 PHP
thinkPHP5.0框架模块设计详解
Mar 18 PHP
php事务回滚简单实现方法示例
Mar 28 PHP
PHP7如何开启Opcode打造强悍性能详解
May 11 PHP
PHP精确到毫秒秒杀倒计时实例详解
Mar 14 PHP
php遍历目录下文件并按修改时间排序操作示例
Jul 12 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和XSS跨站攻击的防范
2007/04/17 PHP
PHP生成图像验证码的方法小结(2种方法)
2016/07/18 PHP
PHP实现简单用户登录界面
2019/10/23 PHP
javascript+xml技术实现分页浏览
2008/07/27 Javascript
jQuery 性能优化指南(3)
2009/05/21 Javascript
JavaScript为对象原型prototype添加属性的两种方式
2010/08/01 Javascript
jQuery(非HTML5)可编辑表格实现代码
2012/12/11 Javascript
JavaScript的模块化:封装(闭包),继承(原型) 介绍
2013/07/22 Javascript
Js冒泡事件详解及阻止示例
2014/03/21 Javascript
JavaScript常用小技巧小结
2014/12/29 Javascript
jquery插件qrcode在线生成二维码
2015/04/26 Javascript
javascript实现简单的进度条
2015/07/02 Javascript
jquery mobile开发常见问题分析
2016/01/21 Javascript
AngularJS延迟加载html template
2016/07/27 Javascript
基于JavaScript实现拖动滑块效果
2017/02/16 Javascript
从零学习node.js之搭建http服务器(二)
2017/02/21 Javascript
详解使用Typescript开发node.js项目(简单的环境配置)
2017/10/09 Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
2017/12/08 Javascript
js中split()方法得到的数组长度问题
2018/07/19 Javascript
Vue项目中使用jquery的简单方法
2019/05/16 jQuery
js实现图片上传到服务器和回显
2020/01/19 Javascript
maptalks+three.js+vue webpack实现二维地图上贴三维模型操作
2020/08/10 Javascript
使用PyOpenGL绘制三维坐标系实例
2019/12/24 Python
PyTorch 随机数生成占用 CPU 过高的解决方法
2020/01/13 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
2020/03/23 Python
Python实现电视里的5毛特效实例代码详解
2020/05/15 Python
美国牙科折扣计划:DentalPlans.com
2019/08/26 全球购物
delegate与普通函数的区别
2014/01/22 面试题
问卷调查计划书
2014/01/10 职场文书
父亲追悼会答谢词
2014/01/17 职场文书
优秀党务工作者事迹材料
2014/05/07 职场文书
集中采购方案
2014/06/10 职场文书
学校综治宣传月活动总结
2014/07/02 职场文书
学生会辞职信
2015/03/02 职场文书
事业单位岗位说明书
2015/10/08 职场文书
创业计划书之奶茶店开店方案范本!
2019/08/06 职场文书