PHP分页、防止英文单词被截段、去除HTML代码

这是我刚学PHP时自己写的一个PHP分页功能,那时候主要对PHP摸板技术不怎么熟悉。其中有包括两个比较经常用到的函数,就是去除HTML代码 pregstring()和防止英文单词被截断的函数 englishSubstr(),通过获取一个字符串的长度,然后自己要求一个页面显示多少长度,进行分页。

//  $content 是一段具有HTML的文本  因为要显示在手机中所以必须去除HTML的格式,然后再使用PHP摸板技术把里面的文本内容替换的相应格式的WAP页面中
$content=pregstring($content);                 //去除HTML代码

$contentSize=strlen($content);                 //获取自符串长度
  
   
 //计算页数
 $pageCount=($contentSize%$pageSize)==0?floor($contentSize/$pageSize):floor($contentSize/$pageSize)+1;
 
 $center=englishSubstr($content,($page-1)*$pageSize,$pageSize);             //输出正文内容
 $center=$p.$center;
 
 
 //以下实现分页效果
 if($pageCount>1)
 {
   if($page<$pageCount)
   {
        $more="<a href=/"Content_menu.php?id=$id&amp;page=".($page+1)."&amp;backID=$backID&amp;x=$x/">More</a>";
   }
 }
 if($page>1)
 {
 
     $prev="<a href=/"Content_menu.php?id=".$id."&amp;page=".($page-1)."&amp;backID=$backID&amp;x=$x/">Prev</a>";
 }  
 
 //显示上一页和下一页 
 if($pageCount>1&&$page>1&&$page<$pageCount)
 {
  $p=$prev." | ".$more;
 }
 else
 {
  $p=$prev.$more;
 }
    
 
 
   //返回上一级的连接

  $back="<a href=/"Three_menu.php?x=$x&amp;id=$backID&amp;page=1/">$t</a>";
    
 
 
 
 $head='<?xml version="1.0" encoding="UTF-8"?>';

 
 $alltitle=$back." > ".$title;
 
  
 
 //替换到摸板中显示
 
 $template->assign( 'HEAD', $head );
 $template->assign( 'LOGIN', "" );
 $template->assign( 'TITLE', $alltitle );
 $template->assign( 'CENTER', $center );
 $template->assign( 'PAGE', $p );
 $template->assign( 'FOOTER', $footer );
 
 $template->output();
 
 
 //以下实现防止英文单词被截断///

   function englishSubstr($str,$start,$end)
   {
     if($start!=0)
  {
       if(substr($str,$start-1,1)!=" ")//如果被截的字母前面一个不是空格,表示这个字母并不是一个单词的开始
     {
  //那么我们就去除第一个不完整单词
   $i;
      for($i=1;$i<20;$i++)
    {
     if(substr($str,$start+$i,1)==" ") //向下循环,直到空格为止,然后高空格后的第一个字母为分页的第一个单词的开始
      {
     break;
      }
    }
    $start+=$i;
    }
  }
     if(substr($str,$end,1)!="")//如果结束处不是空格,表示一个单词还没有完
   {
      $i;
      for($i=1;$i<20;$i++)//往下循环,直到找到空格后退出,
    {
     if(substr($str,$start+$end+$i,1)==" ")
      {
     break;
      }
    }
    $end+=$i;
   }
   //获取分断单词
   return substr($str,$start,$end);
   }

   //去除HTML标题//
//因为有我做的是WAP网站 所以有的字符在手机中不能显示,不然会出错 所以就把一些字符替换掉了 比如$就被我替换成 dollar 了
function pregstring( $str )
{
 $strtemp = trim($str);
 $search  = array(
 "|'|Uis",
 "|<script[^>]*?>.*?</script>|Uis",  // 去掉 javascript
 "|<[///!]*?[^<>]*?>|Uis",    // 去掉 HTML 标记
 "'&(quot|#34);'i",      // 替换 HTML 实体
 "'&(amp|#38);'i",
 "|,|Uis",
 "|[/s]{2,}|is",
 "[&nbsp;]isu",
 "|[$]|Uis",
 );
 $replace = array(
 "`",
 "",
 "",
 "",
 "",
 "",
 " ",
 " ",
 " dollar ",
 );
 $text = preg_replace($search, $replace, $strtemp);
 return $text;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值