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 相关文章推荐
服务器端解压缩zip的脚本
Dec 22 PHP
解决GD中文乱码问题
Feb 14 PHP
php zend 相对路径问题
Jan 12 PHP
php实现自动获取生成文章主题关键词功能的深入分析
Jun 03 PHP
php中time()和mktime()方法的区别
Sep 28 PHP
PDO防注入原理分析以及注意事项
Feb 25 PHP
php实现的网页版剪刀石头布游戏示例
Nov 25 PHP
php将html转为图片的实现方法
May 19 PHP
bindParam和bindValue的区别以及在Yii2中的使用详解
Mar 12 PHP
PHP如何通过表单直接提交大文件详解
Jan 08 PHP
Laravel框架创建路由的方法详解
Sep 04 PHP
laravel 模型查询按照whereIn排序的示例
Oct 16 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获取字符串前几位的实例(substr返回字符串的子串用法)
2017/03/08 PHP
PHP设计模式之工厂模式实例总结
2017/09/01 PHP
Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
2006/11/07 Javascript
超精准的javascript验证身份证号的具体实现方法
2015/11/18 Javascript
基于d3.js实现实时刷新的折线图
2016/08/03 Javascript
微信小程序 判断手机号的实现代码
2017/04/19 Javascript
Bootstrap实现的标签页内容切换显示效果示例
2017/05/25 Javascript
利用Decorator如何控制Koa路由详解
2018/06/26 Javascript
js获取form表单中name属性的值
2019/02/27 Javascript
vue中实现Monaco Editor自定义提示功能
2019/07/05 Javascript
JavaScript DOM常用操作代码汇总
2020/07/03 Javascript
Element Steps步骤条的使用方法
2020/07/26 Javascript
在Django中管理Users和Permissions以及Groups的方法
2015/07/23 Python
离线安装Pyecharts的步骤以及依赖包流程
2020/04/23 Python
python数据结构之链表的实例讲解
2017/07/25 Python
使用Python操作excel文件的实例代码
2017/10/15 Python
Python实现合并两个列表的方法分析
2018/05/28 Python
Python3实现的旋转矩阵图像算法示例
2019/04/03 Python
Python 绘制酷炫的三维图步骤详解
2019/07/12 Python
HTML的form表单和django的form表单
2019/07/25 Python
美国机场停车位预订:About Airport Parking
2018/03/26 全球购物
切尔西足球俱乐部官方网上商店:Chelsea FC
2019/06/17 全球购物
德国户外商店:eXXpozed
2020/07/25 全球购物
PHP引擎php.ini参数优化深入讲解
2021/03/24 PHP
中医临床专业自我鉴定范文
2014/01/15 职场文书
国际贸易专业个人求职信格式
2014/02/02 职场文书
读群众路线心得体会
2014/03/07 职场文书
搞笑创意广告语
2014/03/17 职场文书
安康杯竞赛活动总结
2014/05/05 职场文书
法人代表证明书格式
2014/10/01 职场文书
拾金不昧感谢信
2015/01/21 职场文书
2015年安全员工作总结范文
2015/04/22 职场文书
2015年全国助残日活动方案
2015/05/04 职场文书
结婚典礼主持词
2015/06/29 职场文书
实用求职信模板范文
2019/05/13 职场文书
JavaScript的Set数据结构详解
2022/02/18 Javascript