📄 msgxml.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 + -