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;
}


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3