Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Stronicowanie plików html.
trylas
post 4.02.2009, 13:24:45
Post #1





Grupa: Zarejestrowani
Postów: 53
Pomógł: 1
Dołączył: 7.09.2008

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


Sprawa jest nastepujaca... mam spora ilosc artykulow w postaci plikow html.... dodatkowo sa one dlugie i zawieraja obrazki....

Moje pytanie brzmi : czy lepiej wrzucic te artykuly do bazy i wyciagac je z bazy i dzielic na strony?

czy lepiej otwierac dany plik i wyciagac okreslona ilosc linii i w ten sposob stronicowac? ....
tyle ze ponizszy kod nie gwarantuje tej samej ilosci linii ... sprawdzilem i roznie to wyglada moze to sprawa grafiki ktora liczona jest inaczej?

oto kod:
CODE

$uchwyt = fopen($id,'r');
while(!feof($uchwyt)){
$linia = rtrim(fgets($uchwyt));
$licznik++;
if($licznik>0 && $licznik<=15){
$tabliczka[] = $linia;
print $linia;
}
}
fclose($uchwyt);


druga sprawa jak zrobic stronicowanie w zaistnialej sytuacji?

skonstrowałem taki kod
  1. <?php
  2. $id = isset( $_GET['id'] ) ? $_GET['id'] : 0;
  3. $nazwa = $id;
  4. $id = 'calinews/'.$id.'.php';
  5.  
  6.  
  7. $uchwyt = @fopen ("$id", "r");
  8. if ($uchwyt) {
  9. while (!feof($uchwyt)) {
  10.     $buffer = fgets($uchwyt);
  11.  $array = split('<p></p>', $buffer);
  12.  
  13. $nr_stron = array_keys($array);
  14. for ($x=0; $x<count($nr_stron); $x++)
  15. {
  16. print "<a href=artykul.php?id=$nazwa&start=$nr_stron[$x]>$nr_stron[$x]</a>";
  17. }
  18. print '<br>';
  19. $start = 0;
  20. $start = isset( $_GET['start'] ) ? $_GET['start'] : 0;
  21. print $array[$start];
  22. }
  23. fclose ($uchwyt);
  24. }
  25. ?>

i wszystko dziala dopoki dzielony plik nie jest html bo wtedy split dzieli kazdy nawias..... czy ktos ma pomysl na rozwiazanie tego problemu.

Ten post edytował trylas 5.02.2009, 14:04:08
Go to the top of the page
+Quote Post
Pilsener
post 4.02.2009, 13:31:52
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


A nie możesz tego podzielić w ten sposób, że jeden plik = jedna strona? Będzie łatwiej i szybciej - inaczej nigdy nie będzie równo - no i po linijkach czy słowach jest bez sensu, bo co, gdy utnie w połowie zdania? Lepiej już po akapitach - trzeba policzyć akapity oraz znaki/słowa/linijki (najszybciej będzie chyba linijki) - wyświetlać np. nie więcej niż 1500 znaków na stronę zaokrąglając do najbliższego akapitu.
Go to the top of the page
+Quote Post
trylas
post 5.02.2009, 14:05:13
Post #3





Grupa: Zarejestrowani
Postów: 53
Pomógł: 1
Dołączył: 7.09.2008

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


prosze o pomoc.
Go to the top of the page
+Quote Post
Foxx
post 5.02.2009, 14:10:52
Post #4





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

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


Może wstaw do treści artykułów znacznik w stylu #PART# i rób split na nim.
Go to the top of the page
+Quote Post
trylas
post 5.02.2009, 14:20:56
Post #5





Grupa: Zarejestrowani
Postów: 53
Pomógł: 1
Dołączył: 7.09.2008

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


ano faktycznie good idea ... ale jeszcze problem ze spacjami tez widzi je i umieszcza ... zna ktos jakis hokus pokus na to?
Go to the top of the page
+Quote Post
Foxx
post 5.02.2009, 14:25:21
Post #6





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

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


Kto widzi?
Gdzie umieszcza?
worriedsmiley.gif
Go to the top of the page
+Quote Post
trylas
post 5.02.2009, 14:33:43
Post #7





Grupa: Zarejestrowani
Postów: 53
Pomógł: 1
Dołączył: 7.09.2008

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


tzn ... musze wyrzucic wszystkie spacje z dokumentu html (nawet te ktore formatuja kod dla lepszej czytelności) bo inaczej wyswietla mi je jako ... link (indeks z tablicy) .... moze to byc blad w kodzie bo pisalem to sam ... a doswiadczenie mam srednie wiec moglem cos zapetlic..... z drugiej strony testowalem to na pieciu indexach tablicy(slowach) i funkcjonowalo ...... nie wiem czy jasno sie wyrazilem
Go to the top of the page
+Quote Post
Foxx
post 5.02.2009, 14:53:18
Post #8





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

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


Niezupełnie jasno. Pokaż przykład nieporządanych objawów i wklej kod, który jest za nie odpowiedzialny. Wtedy będziemy mogli pomóc lepiej.
Go to the top of the page
+Quote Post
trylas
post 6.02.2009, 11:56:54
Post #9





Grupa: Zarejestrowani
Postów: 53
Pomógł: 1
Dołączył: 7.09.2008

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


CODE
$id = isset( $_GET['id'] ) ? $_GET['id'] : 0;
$nazwa = $id;
$id = 'calinews/'.$id.'.html';


$uchwyt = @fopen ("$id", "r");
if ($uchwyt) {
while (!feof($uchwyt)) {
$buffer = fgets($uchwyt);
$array = split('#PART#', $buffer);

$elems = count($array);
$na_stronie = "1" ;

$start = $_GET['start'] ;
if( !isset($start) ) { $start = "0"; }

$ta_strona = $start / $na_stronie + 1 ;

$start_podstrony = "0";
$podstrona = "1";

print '<table width="100%" border="0" cellspacing="0" cellpadding="0" class="tresc">';
print '<tr>';
print '<td>';
print $array[$start];
print '<br><br>';

print '<table width="100%" border="0" cellspacing="0" cellpadding="0">';
print '<tr>';
print '<td align="center">';

if( $start > 0 ) {
$start_poprzedniej = $start - 1;
print '<a href="artykul.php?id='.$nazwa.'&start=' . $start_poprzedniej . '"><< Poprzednia</a>' ;
}
while ( $start_podstrony < $elems ) {
if( $podstrona == $ta_strona ) {
print' [ <a href="artykul.php?id='.$nazwa.'&start='.$start_podstrony.'"><b>' . $podstrona . '</b></a> ] ' ;
} else {
print ' [ <a href="artykul.php?id='.$nazwa.'&start=' . $start_podstrony . '">' . $podstrona . '</a> ] ' ;
}
$start_podstrony = $start_podstrony + $na_stronie ;
++$podstrona;
}
if( $start < $elems-1) {
$start_nastepnej = $start + 1;
print '<a href="artykul.php?id='.$nazwa.'&start=' . $start_nastepnej . '">Następna>></a>' ;
print '</td></tr></table>';

OKS wszystko funkcjonuje i oparte jest na skrypcie Jessie Jamesa http://www.jessie.ovh.org/test/stronicowanie.php

jest tylko jeden minus tego .... zaciagany plik html i dzielony nie moze zawierac białych znaków bo wtedy ... te białe znaki zapisywane sa do tablicy po indeksem "0" .... nie mam pojecia jak to rozwiazac.... tak wiec poki co wszystkie zaciagane pliki przerobilem jako kod html bez spacji(bialych znakow). moze ktos wie jak to rozwiazac, zeby bylo normalnie i mozna bylo sformatowac kod dla wiekszej czytelnosci....
Go to the top of the page
+Quote Post
Apocalyptiq
post 6.02.2009, 16:47:43
Post #10





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


Nie rozumiem, jakie białe znaki? Graniczne białe znaki (na końcu/początku) możesz usunąć funkcją trim(), ale chyba nie o to ci chodzi. Mógłbyś podać linka, żeby można było zobaczyć jak to aktualnie działa i co nie działa ok? Albo ew. tu na forum treść strony, na której jest błąd z tymi spacjami.


--------------------
http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 7.07.2025 - 05:16