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中全局变量global的使用演示代码
May 18 PHP
如何批量替换相对地址为绝对地址(利用bat批处理实现)
May 27 PHP
PHP遍历某个目录下的所有文件和子文件夹的实现代码
Jun 28 PHP
PHP邮件发送类PHPMailer用法实例详解
Sep 22 PHP
浅谈php优化需要注意的地方
Nov 27 PHP
php中最简单的字符串匹配算法
Dec 16 PHP
windows下安装php的memcache模块的方法
Apr 07 PHP
PHP中快速生成随机密码的几种方式
Apr 17 PHP
Yii2选项卡的简单使用
May 26 PHP
php微信公众号开发之校园图书馆
Oct 20 PHP
PHP使用mongoclient简单操作mongodb数据库示例
Feb 08 PHP
Laravel Validator 实现两个或多个字段联合索引唯一
May 08 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写入数据库类代码分享
2011/07/26 PHP
php 深入理解strtotime函数的使用详解
2013/05/23 PHP
php修改NetBeans默认字体的大小
2013/07/02 PHP
php页面防重复提交方法总结
2013/11/25 PHP
JavaScript地图拖动功能SpryMap的简单实现
2013/07/17 Javascript
jquery easyui 结合jsp简单展现table数据示例
2014/04/18 Javascript
JS实现固定在右下角可展开收缩DIV层的方法
2015/02/13 Javascript
JavaScript计算两个日期时间段内日期的方法
2015/03/16 Javascript
浅析Javascript ES6新增值比较函数Object.is
2016/08/24 Javascript
bootstrap栅格系统示例代码分享
2017/05/22 Javascript
layui表格checkbox选择全选样式及功能的实例
2018/03/07 Javascript
vue组件中使用props传递数据的实例详解
2018/04/08 Javascript
Angular通过指令动态添加组件问题
2018/07/09 Javascript
layer弹出层 iframe层去掉滚动条的实例代码
2018/08/17 Javascript
Vue 样式绑定的实现方法
2019/01/15 Javascript
python打开文件并获取文件相关属性的方法
2015/04/23 Python
Python简单实现TCP包发送十六进制数据的方法
2016/04/16 Python
全面了解Python的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
Django基础之Model操作步骤(介绍)
2017/05/27 Python
浅谈Python处理PDF的方法
2017/11/10 Python
Python Tkinter模块实现时钟功能应用示例
2018/07/23 Python
从pandas一个单元格的字符串中提取字符串方式
2019/12/17 Python
Python csv文件记录流程代码解析
2020/07/16 Python
美国领先的男士和女士内衣购物网站:Freshpair
2019/02/25 全球购物
巴西葡萄酒商店:Divvino
2020/02/22 全球购物
淘宝活动策划方案
2014/02/06 职场文书
巡警年度自我鉴定
2014/02/21 职场文书
数控专业自荐书范文
2014/03/16 职场文书
原料仓管员岗位职责
2014/04/12 职场文书
建设幸福中国演讲稿
2014/09/11 职场文书
党员民主生活会对照检查材料思想汇报
2014/09/28 职场文书
关于公司年会的开幕词
2016/03/04 职场文书
导游词之珠海轮廓
2019/10/25 职场文书
浅析Django接口版本控制
2021/06/26 Python
Oracle使用别名的好处
2022/04/19 Oracle
Redis配置外网可访问(redis远程连接不上)的方法
2022/12/24 Redis