fork download
  1. <?php
  2. for ($x = 1; $x <= 7; $x++) {
  3. for ($y = 1; $y <= $x; $y++) {
  4. PageNum($y, $x);
  5. }
  6. }
  7.  
  8. function PageNum($iPage, $iPageCount) {
  9. $iRangeOfPageNum = 2;
  10. $iEndOfPageNum = $iPage + $iRangeOfPageNum;
  11. if ($iEndOfPageNum <= $iRangeOfPageNum*2) {
  12. $iEndOfPageNum = $iRangeOfPageNum*2 +1;
  13. }
  14. if ($iEndOfPageNum > $iPageCount) {
  15. $iEndOfPageNum = $iPageCount;
  16. }
  17. $iBeginOfPageNum = $iEndOfPageNum - $iRangeOfPageNum*2;
  18. if ($iBeginOfPageNum > 1) {
  19. echo "... ";
  20. } else {
  21. $iBeginOfPageNum = 1;
  22. }
  23.  
  24. for ($i = $iBeginOfPageNum; $i <= $iEndOfPageNum; $i++) {
  25. if ($i == $iPage) {
  26. echo "*$i* ";
  27. } else {
  28. echo "$i ";
  29. }
  30. }
  31.  
  32. if ($iEndOfPageNum < $iPageCount) {
  33. echo "... ";
  34. }
  35. echo "\niPage:$iPage, iPageCount:$iPageCount, iRangeOfPageNum:$iRangeOfPageNum, iBeginOfPageNum:$iBeginOfPageNum iEndOfPageNum:$iEndOfPageNum\n\n";
  36. }
  37. ?>
Success #stdin #stdout 0.01s 20568KB
stdin
Standard input is empty
stdout
*1* 
iPage:1, iPageCount:1, iRangeOfPageNum:2, iBeginOfPageNum:1 iEndOfPageNum:1

*1* 2 
iPage:1, iPageCount:2, iRangeOfPageNum:2, iBeginOfPageNum:1 iEndOfPageNum:2

1 *2* 
iPage:2, iPageCount:2, iRangeOfPageNum:2, iBeginOfPageNum:1 iEndOfPageNum:2

*1* 2 3 
iPage:1, iPageCount:3, iRangeOfPageNum:2, iBeginOfPageNum:1 iEndOfPageNum:3

1 *2* 3 
iPage:2, iPageCount:3, iRangeOfPageNum:2, iBeginOfPageNum:1 iEndOfPageNum:3

1 2 *3* 
iPage:3, iPageCount:3, iRangeOfPageNum:2, iBeginOfPageNum:1 iEndOfPageNum:3

*1* 2 3 4 
iPage:1, iPageCount:4, iRangeOfPageNum:2, iBeginOfPageNum:1 iEndOfPageNum:4

1 *2* 3 4 
iPage:2, iPageCount:4, iRangeOfPageNum:2, iBeginOfPageNum:1 iEndOfPageNum:4

1 2 *3* 4 
iPage:3, iPageCount:4, iRangeOfPageNum:2, iBeginOfPageNum:1 iEndOfPageNum:4

1 2 3 *4* 
iPage:4, iPageCount:4, iRangeOfPageNum:2, iBeginOfPageNum:1 iEndOfPageNum:4

*1* 2 3 4 5 
iPage:1, iPageCount:5, iRangeOfPageNum:2, iBeginOfPageNum:1 iEndOfPageNum:5

1 *2* 3 4 5 
iPage:2, iPageCount:5, iRangeOfPageNum:2, iBeginOfPageNum:1 iEndOfPageNum:5

1 2 *3* 4 5 
iPage:3, iPageCount:5, iRangeOfPageNum:2, iBeginOfPageNum:1 iEndOfPageNum:5

1 2 3 *4* 5 
iPage:4, iPageCount:5, iRangeOfPageNum:2, iBeginOfPageNum:1 iEndOfPageNum:5

1 2 3 4 *5* 
iPage:5, iPageCount:5, iRangeOfPageNum:2, iBeginOfPageNum:1 iEndOfPageNum:5

*1* 2 3 4 5 ... 
iPage:1, iPageCount:6, iRangeOfPageNum:2, iBeginOfPageNum:1 iEndOfPageNum:5

1 *2* 3 4 5 ... 
iPage:2, iPageCount:6, iRangeOfPageNum:2, iBeginOfPageNum:1 iEndOfPageNum:5

1 2 *3* 4 5 ... 
iPage:3, iPageCount:6, iRangeOfPageNum:2, iBeginOfPageNum:1 iEndOfPageNum:5

... 2 3 *4* 5 6 
iPage:4, iPageCount:6, iRangeOfPageNum:2, iBeginOfPageNum:2 iEndOfPageNum:6

... 2 3 4 *5* 6 
iPage:5, iPageCount:6, iRangeOfPageNum:2, iBeginOfPageNum:2 iEndOfPageNum:6

... 2 3 4 5 *6* 
iPage:6, iPageCount:6, iRangeOfPageNum:2, iBeginOfPageNum:2 iEndOfPageNum:6

*1* 2 3 4 5 ... 
iPage:1, iPageCount:7, iRangeOfPageNum:2, iBeginOfPageNum:1 iEndOfPageNum:5

1 *2* 3 4 5 ... 
iPage:2, iPageCount:7, iRangeOfPageNum:2, iBeginOfPageNum:1 iEndOfPageNum:5

1 2 *3* 4 5 ... 
iPage:3, iPageCount:7, iRangeOfPageNum:2, iBeginOfPageNum:1 iEndOfPageNum:5

... 2 3 *4* 5 6 ... 
iPage:4, iPageCount:7, iRangeOfPageNum:2, iBeginOfPageNum:2 iEndOfPageNum:6

... 3 4 *5* 6 7 
iPage:5, iPageCount:7, iRangeOfPageNum:2, iBeginOfPageNum:3 iEndOfPageNum:7

... 3 4 5 *6* 7 
iPage:6, iPageCount:7, iRangeOfPageNum:2, iBeginOfPageNum:3 iEndOfPageNum:7

... 3 4 5 6 *7* 
iPage:7, iPageCount:7, iRangeOfPageNum:2, iBeginOfPageNum:3 iEndOfPageNum:7