⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msgxml.php

📁 无刷新技术AJAX,就是在不刷新网页的情况下更新网站内容
💻 PHP
字号:
<?
header( "Content-type: text/xml; charset=gbk");
header( "Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . " GMT" );
header( "Cache-Control: no-cache, must-revalidate" );
header( "Pragma: no-cache" );

?>
<?php
echo "<?xml version=\"1.0\" encoding=\"gbk\"?>";
require_once("../inc/loaddata.inc");
require_once("../inc/substring.php");
//$fname="data/LeaveMessage.txt";
//$filearray= file($fname);
//$totalNumber=sizeof($filearray);
$msg="";
$num = 5;//设定每页取出的长度;
if(isset($_GET["num"])){
	if($_GET["num"]>0)$num=$_GET["num"];
}	
$pageno=1;//设定默认的页数,置空默认则表示读取全部;
if(isset($_GET["pageno"]))
{
		if($_GET["pageno"]>0)$pageno=$_GET["pageno"];

}

//如果设定了要取出数据的长度;
/*
if ($fd = @fopen($fname, "r"))
 $msg= fgetss($fd,998);
if(strlen($msg)>0)
echo $msg;
*/


$pagecount = bcdiv($totalNumber+$num-1,$num,0);
//总页数等于总数量+每页显示数量-1再除以每页显示数量;并取整值;
if($pageno>$pagecount) {//删除最后一个记录时不会出错;
 $pageno = $pagecount; //若pageno比总共的页数大,则把它设置为最后一页
}


//get $filearry;
for($j=0;$j<$totalNumber;$j++){
	$fileline[$j] = split("\t",$filearray[$j]);
}

echo "<messages>";
$maxNumber=0;
$minNumber=0;

//$i=($totalNumber-1);//设$i为总数据最大条数;

$i = 0;//正序输出;

if($pageno>0){
//如果有页数及每页显示数量的设定;
	$maxNumber=$num==0?($num+$pageno-1):$pageno*$num-1;
//当前页最末条数为页数*每页显示的数量-1; 但若每页展示为0(即1条数据的话),则最大条数为0*当前页数-1;

	$minNumber=$num>0 ? $maxNumber-$num+1 : $minNumber;
//当前页起始条数为页数*每页显示的数量-每页显示的数量;	$minNumber=$pageno*$num-$num;
//或者直接是最大数据减去显示量;

//$i = $maxNumber < $i ? $maxNumber : $i;
//当前页最大条数小于总数据的最大条数,
//那么$i将等于当前页最大的条数


    $i = $minNumber > $i ? $minNumber : $i;//正序输出;
}



//如果来自发帖页的请求,需要输出最多10条的最新信息;
if(isset($_GET["pageno"]) && $_GET["pageno"] == "max"){ 
 $i = $totalNumber - $num > 0 ? $i = $totalNumber - $num : $i = 0;
 $maxNumber = $totalNumber;
  //如果请求来自发帖页,起始条数则是最大的条数减去10条(一共不够10条则为0);
  //当前页最大条数要等于总的最大的条数;
}


//当$i>起始条数时且至少有一条数据时,递减倒序输出;
//for($i; $i >= $minNumber && $i >= 0 ;$i--){

//递加倒序输出;
for($i; $i <= $maxNumber && $i < $totalNumber; $i++){	//正序输出;

//for($i=($totalNumber-1);($i>=($totalNumber-$num) && $i>=0);$i--){
//for($i=0;$i< $totalNumber;$i++){	
//for($i=0;$i< $num ;$i++){		
	echo "<message>";
	//for($x = 0; $x < sizeof($fileline[$i]); $x++){
	for($x = 0; $x < 8; $x++){//输出6种;
		 $tag="";
		 switch($x){
		 	  case 0: $tag= "title";	break;
		 	  case 1: $tag= "contents";	break;
		 	  case 2: $tag= "user";	break;
		 	  case 3: $tag= "ip";	break;
		 	  case 4: $tag= "host";	break;
		 	  case 5: $tag= "time";	break;	
		 	  case 6: $tag= "no";	break;		 	  
		 	  default:  $tag= "id";  
		 	}
		 $fileline[$i][$x] = stripslashes(stripslashes(($fileline[$i][$x]))) ; //stripslashes(stripslashes($fileline[$i][$x])) ; 
		 //if($x!=1)$fileline[$i][$x] = htmlspecialchars_decode($fileline[$i][$x]);
		 //htmlspecialchars_decode需要更新的版本支持,5.1以上支持;
		 //if($x!=1) $fileline[$i][$x] = strtr( $fileline[$i][$x] , array_flip( get_html_translation_table() );
		 if($x!=1)$fileline[$i][$x] = html_entity_decode($fileline[$i][$x]);

		 if($x == 1){		 	
		 	  $moreMssage = "no";
		 	  if ( isset($_GET["moremsg"])) $moreMssage = $_GET["moremsg"];
		 	  if($moreMessage != "yes")$fileline[$i][$x] = dsubstr($fileline[$i][$x],0,200,$i);
		 	  //如果请求不含有查看全部信息,则对内容进行200个字符截取;
		 	  //默认输入截取后的字符;
		 	}

	   if($x == 7)
	     echo 	"<$tag>". ($i + 1) . "</$tag>";
	   else 
	     echo 	"<$tag><![CDATA[" .$fileline[$i][$x] . "]]></$tag>";
	}
	echo "</message>";
}
$numString="";
$numString .= "<number>";
$numString .= "<total> ".$totalNumber." </total>";
$numString .= "<max> ".$maxNumber." </max>";
$numString .= "</number>";
echo $numString;
echo "</messages>";
?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -