Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Stronnicwanie... operacja na plikach, Jak zrobić stronnicowania gdy wszystko robione jest "w locie"?
bimo
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 21.08.2007

Ostrzeżenie: (0%)
-----


Witam
Jako iż jestem dość początkującym php'owcem więc muszę zasięgnąć porady specjalistów.
Zrobiłem Swój skrypt, opiera się na plikach tekstowych.

A więc tak: (streszczony skrypt)
___________________________________
////Otwiera plik z katalogu /kontakty/
$handle = opendir('kontakty/.');
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
$file1=fopen("kontakty/".$file."", "r");
flock($file1, 1);
pobiera poprzez fgets ( każdą linijkę z osobna [/n])
$imie =fgets($file1, 500); /// Pierwszy plik:(Marian) Drugi plik: (Antek)
$nazwisko =fgets($file1, 500); /// Pierwszy plik: (Kleszczuk) Drugi plik: (Nowak)
$data =fgets($file1, 500); ///data dodania wpisu: pierwszy plik:(102007) Drugi plik: (102007)

////Następnie sprawdza czy test2 nie jest pusty

if($test!=='/n') {$imiep[$file]="Mam na imie $imie";}
if($test2!=='/n') {$nazwiskop[$file]=", nazwisko $nazwisko.";}


////Ostatnie wpisy:

$data1 = date("mY");
$data = ereg_replace("\n", "", $data);
$data = ereg_replace(" ", "", $data);
$data1 = ereg_replace(" ", "", $data1);
$data1 = ereg_replace("\n", "", $data1);

if($data==$data1) echo"Dane:$imiep[$file] $nazwiskop[$file] <br/>";

$nr++;
fclose($file1);
}

}
closedir($handle);
}
_________________________________________
Wyświetli:
Mam na imie Marian, nazwisko Kleszcuk
Mam na imie Antek, nazwisko Nowak

I tu pytanie jak zrobić stronnicowanie dla takiego skryptu?
Głównie chodzi mi jakich funkcji użyć, potem może sam coś wysmaruje (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Z góry dzięki

Ten post edytował bimo 6.10.2007, 22:18:48
Go to the top of the page
+Quote Post
Speedy
post
Post #2





Grupa: Zarejestrowani
Postów: 651
Pomógł: 28
Dołączył: 4.12.2004

Ostrzeżenie: (0%)
-----


W celu stworzenia stronicowania danych przechowywanych w pliku, najlepiej najpierw stwórz tablicę z tego pliku, a potem podziel ją na kawałki. Na podstawie ilości kawałków, ilości rekordów oraz ilości rekordów, które chcesz wyświetlić na jednej stronie, możesz ustalić ilość stron i wyświetlać odpowiednie linki (następna strona, poprzednia strona etc.). Odpowiednie funkcje znajdziesz w manualu pod hasłem array" title="Zobacz w manualu PHP" target="_manual.
Go to the top of the page
+Quote Post
matix
post
Post #3





Grupa: Zarejestrowani
Postów: 278
Pomógł: 10
Dołączył: 13.02.2007
Skąd: Rybnik

Ostrzeżenie: (0%)
-----


Ostatnimi czasy napisałem prosty pager do swojego frameworka. Aby działał, potrzeba danych w arrayu z numerami stron, czyli:

  1. <?php
  2. $aLiczby = array (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);
  3. ?>


Specjalnie dla ciebie udostępniam go (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

  1. <?php
  2. class pager {
  3.  
  4. private
  5. $aPages = '',
  6. $iNav = 0;
  7.  
  8. private static
  9. $iLimit = 5;
  10.  
  11. const
  12. linkback = '<div class=\"pager_link\"><a href=\"%s\">&laquo; ',
  13. linklike = '<div class=\"pager_link\"><a href=\"%s\">%s ',
  14. linkcurrent = '<div class=\"pager_link\"><a href=\"%s\">%s ',
  15. linknext = '<div class=\"pager_link\"><a href=\"%s\">&raquo;',
  16.  
  17. seperator = ' ... ' ;
  18.  
  19. public function __construct($aPages)
  20. {
  21. $this -> aPages = $aPages;
  22. }
  23.  
  24. public function render()
  25. {
  26. $oUri = new url;
  27. self::$iLimit = round(self::$iLimit/2);
  28.  
  29. if ($oUri -> getParam(1) == '') 
  30. $iStr = 1;
  31. else
  32. $iStr = $oUri -> getParam(1);
  33.  
  34. $iBack = ($iStr == '' || $iStr == 1) ? $oUri->build(array('index','page', '1')) : $oUri->build(array('index', 'page', $iStr-1));
  35.  
  36. $iNext = ($iStr == count($this->aPages))$oUri -> build(array('index', 'page', count($this -> aPages))) : $oUri->build(array('index', 'page', $iStr+1));
  37.  
  38. $sPattern = sprintf(self::linkback, $iBack);
  39.  
  40. foreach ($this->aPages as $sPage)
  41. {
  42. $iCurrent = ($iStr == '') ? 1 : $iStr;
  43.  
  44. if ($iCurrent <= $sPage) {
  45. if ($iCurrent+self::$iLimit > $sPage) {
  46.  
  47. $sLink = ($iStr == $sPage) ? self::linkcurrent : ($iStr == '' && $sPage == 1) ?self::linkcurrent : self::linklike;
  48.  
  49. $sPattern .= sprintf($sLink, $oUri->build(array('index', 'page', $sPage)), $sPage);
  50.  
  51. }else{
  52.  
  53. $sPattern .= sprintf(self::linklike, $oUri->build(array('index', 'page', $iStr)),self::seperator);
  54. break;
  55.  
  56. }
  57. }else{
  58.  
  59. if ($iCurrent < $sPage+self::$iLimit) {
  60.  
  61. $sLink = ($iStr == $sPage) ? self::linkcurrent : ($iStr == '' && $sPage == 1) ?self::linkcurrent : self::linklike;
  62.  
  63. $sPattern .= sprintf($sLink, $oUri->build(array('index', 'page', $sPage)), $sPage);
  64. }
  65.  
  66. }
  67.  
  68.  
  69. }
  70.  
  71. $sPattern .= sprintf(self::linknext, $iNext);
  72.  
  73. return $sPattern;
  74. }
  75.  
  76. }
  77. ?>


Tworzy on linki w postaci
Kod
<< ... 5 6 7 8 9 ... >>


Aby działał, musisz go sobie troche przerobić, między innymi URL-e.

Pozdro (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował matix 7.10.2007, 09:43:59
Go to the top of the page
+Quote Post
bimo
post
Post #4





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 21.08.2007

Ostrzeżenie: (0%)
-----


#Speedy już chyba 3 podejście do array'a tyle ze dalej nic z tego nie rozumiem...
Chyba nie ma nic tródniejszego niż ten nieszczęsny array!

#Matrix dzięki wielkie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) a to mój pełny kod do wglądu
Pod co mam podstawić ten array $aLiczby? pod jakie tablice w moim skrypcie? [$file] ?
Dzięki (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.12.2025 - 23:38