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调用数据库的存贮过程!
Oct 09 PHP
PHP通过COM使用ADODB的简单例子
Dec 31 PHP
php获取网页内容方法总结
Dec 04 PHP
使用XDebug调试及单元测试覆盖率分析
Jan 27 PHP
php中将网址转换为超链接的函数
Sep 02 PHP
PHP+Ajax异步通讯实现用户名邮箱验证是否已注册( 2种方法实现)
Dec 28 PHP
yii2.0使用Plupload实现带缩放功能的多图上传
Dec 22 PHP
PHP的Laravel框架中使用消息队列queue及异步队列的方法
Mar 21 PHP
php接口实现拖拽排序功能
Apr 23 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
Mar 26 PHP
PHP实现基本留言板功能原理与步骤详解
Mar 26 PHP
PHP7 list() 函数修改
Mar 09 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代码
2006/12/06 PHP
PHP模板引擎Smarty的缓存使用总结
2014/04/24 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
2015/06/24 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
2015/08/25 PHP
php实现的单一入口应用程序实例分析
2015/09/23 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
PHP实现APP微信支付的实例讲解
2018/02/10 PHP
JS验证控制输入中英文字节长度(input、textarea等)具体实例
2013/06/21 Javascript
jquery实现的判断倒计时是否结束代码
2016/02/05 Javascript
JS延时器提示框的应用实例代码解析
2016/04/27 Javascript
JS留言功能的简单实现案例(推荐)
2016/06/23 Javascript
jQuery树形控件zTree使用小结
2016/08/02 Javascript
详解Angular 4.x NgIf 的用法
2017/05/22 Javascript
详解基于webpack2.x的vue2.x的多页面站点
2017/08/21 Javascript
vuex 使用文档小结篇
2018/01/11 Javascript
vue实现的网易云音乐在线播放和下载功能案例
2019/02/18 Javascript
JavaScript定时器常见用法实例分析
2019/11/15 Javascript
详解React 元素渲染
2020/07/07 Javascript
vue实现下拉菜单树
2020/10/22 Javascript
python实现猜数字游戏(无重复数字)示例分享
2014/03/29 Python
python通过pil将图片转换成黑白效果的方法
2015/03/16 Python
在win和Linux系统中python命令行运行的不同
2016/07/03 Python
Python实现邮件的批量发送的示例代码
2018/01/23 Python
Python for循环生成列表的实例
2018/06/15 Python
python并发和异步编程实例
2018/11/15 Python
python得到一个excel的全部sheet标签值方法
2018/12/10 Python
pandas基于时间序列的固定时间间隔求均值的方法
2019/07/04 Python
python查找重复图片并删除(图片去重)
2019/07/16 Python
Django之使用内置函数和celery发邮件的方法示例
2019/09/16 Python
Python while true实现爬虫定时任务
2020/06/08 Python
html5小技巧之通过document.head获取head元素
2014/06/04 HTML / CSS
下列程序在32位linux或unix中的结果是什么
2015/01/26 面试题
学院党的群众路线教育实践活动整改方案
2014/10/04 职场文书
优秀党支部申报材料
2014/12/24 职场文书
小班上学期幼儿评语
2014/12/30 职场文书
爱国主义电影观后感
2015/06/18 职场文书