php将html转成wml的WAP标记语言实例_php技巧

本文实例讲述了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程序设计有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索html
, php
, wml
WAP标记语言
text vnd.wap.wml、dedecms wap wml模板、vnd.wap.wml、手机wap首页代码实例、钢结构识图技巧与实例,以便于您获取更多的相关知识。

时间: 2024-12-14 17:48:39

php将html转成wml的WAP标记语言实例_php技巧的相关文章

php把时间戳转换成多少时间之前函数的实例_php实例

如下所示: function wordTime($time) { $time = (int) substr($time, 0, 10); $int = time() - $time; $str = ''; if ($int <= 2){ $str = sprintf('刚刚', $int); }elseif ($int < 60){ $str = sprintf('%d秒前', $int); }elseif ($int < 3600){ $str = sprintf('%d分钟前', f

php实现两表合并成新表并且有序排列的方法_php技巧

本文实例讲述了php实现两表合并成新表并且有序排列的方法.分享给大家供大家参考. 具体实现方法如下: 复制代码 代码如下: <?php /** la (3,5,8,11) lb(2,6,8,9,11,15) 合并为lc,有序排列. 用php实现,不能用sort之类的函数!!!! **/ class union {     var $lista = array();     var $listb = array();     var $listc = array();          funct

php将文件夹打包成zip文件的简单实现方法_php技巧

示例如下: function addFileToZip($path,$zip){ $handler=opendir($path); //打开当前文件夹由$path指定. while(($filename=readdir($handler))!==false){ if($filename != "." && $filename != ".."){//文件夹文件名字为'.'和'..',不要对他们进行操作 if(is_dir($path."/&q

无线标记语言(WML)基础之WML编程方法

编程 元素和标签是WML的主要语法,它们决定了WML编程的基本原则.本章我们将从WML的元素.标签.属性等方面详细讲解WML的编程方法.学习本章知识之前,读者应当了解WML元素与标签的区别.WML的元素通常有一个首标签.内容.其它元素及一个尾标签组成.也就说,单独的标签是一个元素,成对出现的标签与其包含的内容也构成一个元素.由于元素牵涉及标签,标签又涉及属性. 3.1 卡片.卡片组及其属性 我们前面介绍了WML的卡片与卡片组,主要从概念和相互关系的角度进行了分析.我们这里则从卡片.卡片组的组成.

无线标记语言(WML)基础之WML程序结构

程序 上一节我们降解了一个简单的WML程序,具有HTML编程的读者可以看出,WML程序在结构上形式上与html程序有很多相似之处.下面我们就根据一个实例来分析一下WML程序的结构及组成. 1.WML的元素和标签 分析实例之前,我们有必要对WML的元素和标签予以简单说明.与HTML类似,WML的主要语法也是元素和标签.元素是符合DTD(文档类似定义)的文档组成部分,如title(文档标题).IMG(图像).table(表格)等等,元素名不区分大小写.WML使用标签来规定元素的属性和它在文档中的位置

ASP开发WAP简易邮件系统实例

下一篇:ASP开发WAP简易邮件系统实例(续) 随着手机用户的不断增加,WAP站点如雨后春笋迅速的滋长开来,手机邮箱也不断的出现在人的眼前,笔者也曾经开发了一套手机邮箱的系统,但由于时间仓促再加上后来一直忙于工作事情,系统功能也就再未加强,今日有幸借助于IT168原创网公开出来,与大家共同分享,希望大家可以借题发挥,加强系统功能,能够更好的应用于实际. 测试软件:Opera M3gate 测试机型:Eg730+ Nokia 6681 Moto V3i 邮件组件:W3 Jmail 4.4 一.WM

ASP开发WAP简易邮件系统实例(续)

上一篇:ASP开发WAP简易邮件系统实例 3) 发送邮件 图五 发送邮件功能的实现主要采用了Jmail.Message对象完成,关于所要用到的对象相关知识在前面已经叙述过了,大家可以将上面的功能介绍与源码对照起来阅读,这样有助于理解整个邮件发送过程,当然如果将WM元素换为HTMLF元素,这样一个简单的WEB邮件发送功能也就完成了,send.asp为邮件发送页面 sendok.asp为邮件发送处理页面 Send.asp 〈% @LANGUAGE="VBSCRIPT" CODEPAGE=&

php 生成WML页面方法详解_php技巧

由于静态的WAP页面在很多方面不能满足用户个性化的服务请求,因此通过WAP服务器端语言产生动态的WML页面,具有很广泛的应用价值和很高的商业价值. WAP应用结构非常类似于Internet,一个典型的WAP应用请求是这样的:首先,具有WAP用户代理功能的移动终端(WAP手机等)通过内部运行的微浏览器(Micro Browser)对某一网站以无线方式发送WAP服务请求.该请求先由WAP网关截获,对信息内容进行编码压缩,以减少网络数据流量,同时根据需要将WAP协议转换成HTTP协议,然后将处理后的请

无线标记语言(WML)基础之编写WML文件

无限标记语言WML(Wireless Markup Language)是一种基于扩展标记语言XML(Extension Markup Language)的语言,是XML的子集.它可以显示各种文字.图像等数据,是由WAP论坛(http://www.wapforum.org)提出并专为无线设备用户提供交互界面而设计的,目前版本为1.1版.这些无线设备包括移动电话,呼机和个人数字助理PDA(Personal Digital Assistants)等. 1.WML与WAP设备 为了更好的了解和使用WML