php实现wap页面浏览小说

本文介绍了一种将大型TXT小说文件适配于WAP浏览的技术方案,包括如何自定义页面大小、实现分页导航及解决字符编码导致的显示问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

小说为txt文本形式,需要分成比较小的块,使用户能够通过wap浏览。 每页自定义大小为800k算上分页导航的话有1k左右。分页导航实现了页面跳转:首页 下一页 上一页 尾页 跳到页 。跳页需要wml表单提交,类似于html的表单提交。幸亏我blog中有资料可查,扒拉出来看了看,还能用,需要注意的是 <postfield name="p" value="$(p)"/>  这里的 $(p) 看仔细了,不是php的变量,由于我当时头有点昏,愣是以为是php的变量,调试了半天,结果老是不对。  $page_nav ='<br/><anchor title="link">跳至<go method="post" href="s.php?f='.$_REQUEST['f'].'"><postfield name="p" value="$(p)"/></go></anchor>页<input name="p" type="text" value="'.$page.'" format="*m" maxlength="5" emptyok="false" />'; 显示方面,输出wml的头,汉字gbk转换为utf8,也没啥可说的了。最后测试却发现了一个问题。txt文本比较大,我事先把它拆成n个小文件,一个文件是一个wap页面的内容,然后用程序读取显示。但是在拆分小文件的时候,恰好把一个汉字拆成两半了,显示就乱套了。比如:每个文件20k,如果有10个汉字正好。但是不巧的是有9个汉字加一个字母后面又是汉字这样的话,这个汉字就被拆成两半了。 这样的文件经过iconv之后会导致页面显示错误。试了好几种办法,在公司直到10点多,后来确实脑子不转了,乱七八糟的,害得我星际也没心思打。今天早上在公交车上想出了个办法。我可以按字符读入,如果是汉字读双字节,如果不是则读单字节不就完了么呵呵。于是乎,就写了个函数,搞定。

 function readBook($book,$size=""){ if($size=="") $size = PAGE_SIZE; $handle = fopen ("$book", "r"); while (false !== ($char = fgetc($handle)))  {  if(preg_match("/[/x80-/xff]/",$char))  {   $str .= $char.fgetc($handle);  }  else   $str .= $char;  if(strlen($str) >= ceil($size/2))  {   $arr[] = $str;   $str = "";  }  } $arr[] = $str; return $arr;}      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值