请选择 进入手机版 | 继续访问电脑版

SpeedPHP框架

 找回密码
 注册成为新用户

QQ登录

只需一步,快速开始

查看: 146969|回复: 488

HTML转WAP - 自动转换你的网站成WAP手机网站的PHP代码

  [复制链接]
发表于 2010-8-12 09:39:52 | 显示全部楼层 |阅读模式
最近做的一个新东东,能够将普通的网站转换成WAP手机网站,而本身网站不需要做处理。

特点:
1. 可以将普通的网站自动转成WAP网站。
2. 网站上的链接也会自动解析转换,在WAP中可以浏览整个网站。
3. 非常简单易用,100%兼容基于SpeedPHP的网站。

使用方法:
1. 将wap.php放到需要转换的网站的根目录
2. 手机(或是Opera浏览器)访问 http://你的网站域名/wap.php 即可看到你的WAP网站。
2. 该程序目前未能解决的问题在于表单提交部分。

  1. <?php
  2. @ob_clean();
  3. if( isset($_GET['src']) ){
  4.         $src = str_replace('&amp;','&', $_GET['src']);
  5.         if( 'http://' == substr($src, 0, 7 ) )header("location:{$src}");
  6.         $request = "http://".$_SERVER ['HTTP_HOST'] .'/' .$src;
  7. }else{
  8.         $request = "http://".$_SERVER ['HTTP_HOST'];
  9. }

  10. $content = file_get_contents($request);
  11. header("Content-type: text/vnd.wap.wml");
  12. echo '<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"        "http://www.wapforum.org/DTD/wml_1.1.xml"><wml>';
  13. preg_match_all( "/\<title\>(.*?)\<\/title\>/i", $content, $title );
  14. echo "<card id=\"wap\" title=\"{$title[1][0]}\"><p>";
  15. $patterns = array(
  16.         '/<br\s*\/?\/>/i',
  17.         '/<\/?(blockquote|div|td|p)+\/?>/i',
  18.         '/<(script.*?)>(.*?)<(\/script.*?)>/si',
  19.         '/<(style.*?)>(.*?)<(\/style.*?)>/si',
  20.         '/<(head.*?)>(.*?)<(\/head.*?)>/si',
  21.         '/<a(.*?)href=[\'\"]+(.*?)[\'\"]+(.*?)>(.*?)<\/a>/ie',
  22.         '/<img(.*?)src=[\'\"]+(.+\.(jpg|gif|png))[\'\"]+(.*?)>/ie',
  23.         '/\ \;/i',
  24.         '/\ /i',
  25. );
  26. $replacements = array(
  27.         "\n",
  28.         "\n",
  29.         '',
  30.         '',
  31.         '',
  32.         "'<a href=\"/wap.php?src='.urlencode('\\2').'\">'.stripslashes('\\4').'</a>'",
  33.         "'<img src=\"\\2\" />'",
  34.         " ",
  35.         " ",
  36. );
  37. $content = preg_replace($patterns, $replacements, $content);
  38. $content = strip_tags($content,"<img><a>");
  39. $content = html_entity_decode($content, ENT_QUOTES, 'UTF-8');
  40. $content = preg_replace("/\&\#.*?\;/i", "", $content);
  41. $content = str_replace(array(',"\r\n"), array(', "\n"), $content);
  42. $content = explode("\n", $content);
  43. for ($i = 0; $i < count($content); $i++) {
  44.         $content[$i] = trim($content[$i]);
  45.         if (str_replace(" ", "", $content[$i]) == "") $content[$i] = "";
  46. }
  47. $content = str_replace("<p><br/></p>\n", "", "<p>".implode("<br/></p>\n<p>", $content)."<br/></p>\n");
  48. echo str_replace(array('<p>','</p>'),'',$content);
  49. echo '</p></card></wml>';
复制代码
发表于 2010-8-12 09:49:17 | 显示全部楼层
jack我来做沙发,你有取巧之嫌哦
发表于 2010-8-12 09:51:09 | 显示全部楼层
来看看 jack
发表于 2010-8-12 09:52:24 | 显示全部楼层
好东西呀
发表于 2010-8-12 09:57:05 | 显示全部楼层
回复看看
发表于 2010-8-12 09:58:40 | 显示全部楼层
回复 1# jake


    我来看看了 哈哈 辛苦了哈 jake
发表于 2010-8-12 09:58:52 | 显示全部楼层
JAKE 顶楼呀
发表于 2010-8-12 10:02:31 | 显示全部楼层
感谢分享,学些学习,呵呵
发表于 2010-8-12 10:04:06 | 显示全部楼层
我来也,好东西要下下来的
发表于 2010-8-12 10:08:55 | 显示全部楼层
什么好东西
您需要登录后才可以回帖 登录 | 注册成为新用户

本版积分规则

手机浏览|简版|中文PHP框架|开源协议|SpeedPHP.com ( 粤ICP备08008671号

GMT+8, 2019-11-20 00:09

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表