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 不错的学习资料
Feb 06 PHP
PHP 文件类型判断代码
Mar 13 PHP
php mssql扩展SQL查询中文字段名解决方法
Oct 15 PHP
php获取文件夹路径内的图片以及分页显示示例
Mar 11 PHP
浅谈php扩展imagick
Jun 02 PHP
从零开始学YII2框架(四)扩展插件yii2-kartikgii
Aug 20 PHP
五款PHP代码重构工具推荐
Oct 14 PHP
ThinkPHP控制器里javascript代码不能执行的解决方法
Nov 22 PHP
php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
May 31 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
Jul 26 PHP
对laravel的session获取与存取方法详解
Oct 08 PHP
php实现简单四则运算器
Nov 29 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轻量级数据库操作类Medoo增加、删除、修改、查询例子
2014/07/04 PHP
PHP登录验证码的实现与使用方法
2016/07/07 PHP
PHP标准类(stdclass)用法示例
2016/09/28 PHP
php 判断过去离现在几年的函数(实例代码)
2016/11/15 PHP
tp5 实现列表数据根据状态排序
2019/10/18 PHP
[HTML/CSS/Javascript]WWTJS
2007/09/25 Javascript
33个优秀的jQuery 教程分享(幻灯片、动画菜单)
2011/07/08 Javascript
js获取会话框prompt的返回值的方法
2015/01/10 Javascript
JS右下角广告窗口代码(可收缩、展开及关闭)
2015/09/04 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
2016/01/08 Javascript
jQuery+CSS3+Html5实现弹出层效果实例代码(附源码下载)
2016/05/16 Javascript
JS转换HTML转义符的方法
2016/08/24 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
2017/07/31 Javascript
详解JavaScript的内存空间、赋值和深浅拷贝
2019/04/17 Javascript
Vue 打包体积优化方案小结
2020/05/20 Javascript
vue项目中微信登录的实现操作
2020/09/08 Javascript
Python实现遍历windows所有窗口并输出窗口标题的方法
2015/03/13 Python
Python通过PIL获取图片主要颜色并和颜色库进行对比的方法
2015/03/19 Python
深入解析Python设计模式编程中建造者模式的使用
2016/03/02 Python
使用Python对Excel进行读写操作
2017/03/30 Python
Python KMeans聚类问题分析
2018/02/23 Python
python线程池threadpool实现篇
2018/04/27 Python
Python进程池Pool应用实例分析
2019/11/27 Python
Python项目跨域问题解决方案
2020/06/22 Python
CSS3实现类似翻书效果的过渡动画的示例代码
2019/09/06 HTML / CSS
美国运动鞋和服装网上商店:YCMC
2018/09/15 全球购物
趣味运动会活动方案
2014/02/12 职场文书
一岗双责责任书
2014/04/15 职场文书
中学生爱国演讲稿
2014/09/05 职场文书
领导班子个人对照检查材料(群众路线)
2014/09/26 职场文书
丽江古城导游词
2015/02/03 职场文书
筑梦中国心得体会
2016/01/18 职场文书
2016年乡镇七一建党节活动总结
2016/04/05 职场文书
jQuery实现广告显示和隐藏动画
2021/07/04 jQuery
python获取对象信息的实例详解
2021/07/07 Python
利用nginx搭建RTMP视频点播、直播、HLS服务器
2022/05/25 Servers