当前位置:主页 > 网页教程 > 网页制作 > Html教程 > 内容欢迎大家投稿

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

时间:2014-03-21 18:08来源:未知 作者:大宝库 点击:读取中
阅读工具:字体:

  这是我刚学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="More";

  }

  }

  if($page>1)

  {

  $prev="Prev";

  }

  //显示上一页和下一页

  if($pageCount>1&&$page>1&&$page<$pageCount)

  {

  $p=$prev." | ".$more;

  }

  else

  {

  $p=$prev.$more;

  }

 

  //返回上一级的连接

 

  $back="$t";

 

  $head='';

 

  $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",

  "|

  "|<[/!]*?[^<>]*?>|Uis",  // 去掉 HTML 标记

  "'&(quot|#34);'i",   // 替换 HTML 实体

  "'&(amp|#38);'i",

  "|,|Uis",

  "|[s]{2,}|is",

  "[ ]isu",

  "|[$]|Uis",

  );

  $replace= array(

  "`",

  "",

  "",

  "",

  "",

  "",

  " ",

  " ",

  " dollar ",

  );

  $text = preg_replace($search, $replace, $strtemp);

  return $text;

  }

(责任编辑:大宝库)


------分隔线----------------------------
推荐内容
赞助商链接
赞助商链接