本文实例讲述了html\”>php将html转成wml的WAP标记语言的方法。分享给大家供大家参考。具体实现方法如下:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
<?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程序设计有所帮助。
相关文章
猜你喜欢
- 个人服务器网站搭建:如何选择适合自己的建站程序或框架? 2025-06-10
- 64M VPS建站:能否支持高流量网站运行? 2025-06-10
- 64M VPS建站:怎样选择合适的域名和SSL证书? 2025-06-10
- 64M VPS建站:怎样优化以提高网站加载速度? 2025-06-10
- 64M VPS建站:是否适合初学者操作和管理? 2025-06-10
TA的动态
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
您的支持,是我们最大的动力!
热门文章
-
2025-06-04 96
-
2025-05-25 50
-
2025-05-29 102
-
2025-05-27 70
-
2025-05-29 21
热门评论