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读取IMAP邮件
Oct 09 PHP
PHP与SQL注入攻击[一]
Apr 17 PHP
PHP学习之输出字符串(echo,print,printf,print_r和var_dump)
Apr 17 PHP
解析php addslashes()与addclashes()函数的区别和比较
Jun 24 PHP
基于CakePHP实现的简单博客系统实例
Jun 28 PHP
手把手编写PHP框架 深入了解MVC运行流程
Sep 19 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
Feb 03 PHP
PHP中empty,isset,is_null用法和区别
Feb 19 PHP
php写app接口并返回json数据的实例(分享)
May 20 PHP
php实现微信原生支付(扫码支付)功能
May 30 PHP
PHP5.6读写excel表格文件操作示例
Feb 26 PHP
Thinkphp5框架ajax接口实现方法分析
Aug 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上传、管理照片示例
2006/10/09 PHP
php中opendir函数用法实例
2014/11/15 PHP
php在apache环境下实现gzip配置方法
2015/04/02 PHP
为你总结一些php系统类函数
2015/10/21 PHP
php中的单引号、双引号和转义字符详解
2017/02/16 PHP
用javascript获取textarea中的光标位置
2008/05/06 Javascript
multiSteps 基于Jquery的多步骤滑动切换插件
2011/07/22 Javascript
JavaScript?Apple设备检测示例代码
2013/11/15 Javascript
JS中判断null、undefined与NaN的方法
2014/03/24 Javascript
基于jQuery仿淘宝产品图片放大镜特效
2020/10/19 Javascript
axios简单实现小程序延时loading指示
2018/07/30 Javascript
详解如何给React-Router添加路由页面切换时的过渡动画
2019/04/25 Javascript
nodejs dgram模块广播+组播的实现示例
2019/11/04 NodeJs
JavaScript装饰者模式原理与用法实例详解
2020/03/09 Javascript
vue+element 实现商城主题开发的示例代码
2020/03/26 Javascript
JS指定音频audio在某个时间点进行播放
2020/11/28 Javascript
[05:42]DOTA2英雄梦之声_第10期_蝙蝠骑士
2014/06/21 DOTA
python对json的相关操作实例详解
2017/01/04 Python
python 定时修改数据库的示例代码
2018/04/08 Python
Python 实现遥感影像波段组合的示例代码
2019/08/04 Python
关于Pytorch MaxUnpool2d中size操作方式
2020/01/03 Python
python多进程下的生产者和消费者模型
2020/05/07 Python
浅谈盘点5种基于Python生成的个性化语音方法
2021/02/05 Python
德国苹果商店:MacTrade
2020/05/18 全球购物
华为智利官方商店:Huawei Chile
2020/05/09 全球购物
2014信息技术专业毕业生自我评价
2014/01/17 职场文书
红领巾心向党广播稿
2014/01/19 职场文书
导师就业推荐信范文
2014/05/22 职场文书
2014高考励志标语
2014/06/05 职场文书
会议接待欢迎词范文
2015/01/26 职场文书
导游词范文
2015/02/13 职场文书
2015年“公民道德宣传日”活动方案
2015/05/06 职场文书
2019同学聚会主持词
2019/05/06 职场文书
2019年恭贺升学祝福语集锦
2019/08/15 职场文书
Golang 如何实现函数的任意类型传参
2021/04/29 Golang
springboot+rabbitmq实现智能家居实例详解
2022/07/23 Java/Android